Commit 19d5440d33121b46cedf348c78a0841b23e44c1e

Authored by Mark Holtzhausen
1 parent 58d9ce33

ClientTools Comms Update

webservice/clienttools/ajaxhandler.php
@@ -5,14 +5,16 @@ class ajaxHandler{ @@ -5,14 +5,16 @@ class ajaxHandler{
5 public $version=NULL; 5 public $version=NULL;
6 public $auth=NULL; 6 public $auth=NULL;
7 public $request=NULL; 7 public $request=NULL;
8 -  
9 - public function __construct(&$ret=NULL){ 8 + public $kt=NULL;
  9 + public $authenticator=NULL;
  10 +
  11 + public function __construct(&$ret=NULL,&$kt){
10 // set a local copy of the json request wrapper 12 // set a local copy of the json request wrapper
11 $this->req=new jsonWrapper(isset($_GET['request'])?$_GET['request']:(isset($_POST['request'])?$_POST['request']:'')); 13 $this->req=new jsonWrapper(isset($_GET['request'])?$_GET['request']:(isset($_POST['request'])?$_POST['request']:''));
12 $this->auth=$this->req->jsonArray['auth']; 14 $this->auth=$this->req->jsonArray['auth'];
13 $this->request=$this->req->jsonArray['request']; 15 $this->request=$this->req->jsonArray['request'];
14 -  
15 - 16 +
  17 +
16 // set the response object 18 // set the response object
17 if(get_class($ret)=='jsonResponseObject'){ 19 if(get_class($ret)=='jsonResponseObject'){
18 $this->ret=&$ret; 20 $this->ret=&$ret;
@@ -20,71 +22,97 @@ class ajaxHandler{ @@ -20,71 +22,97 @@ class ajaxHandler{
20 $this->ret=new jsonResponseObject(); 22 $this->ret=new jsonResponseObject();
21 } 23 }
22 $this->ret->setRequest($this->req->jsonArray); 24 $this->ret->setRequest($this->req->jsonArray);
  25 +
  26 + if(get_class($kt)=='KTAPI'){
  27 + $this->kt=&$kt;
  28 + }else{
  29 + $this->ret->addError('KnowledgeTree Object not Received in '.__CLASS__.' constructor. Quitting.');
  30 + return $this->render();
  31 + }
  32 +
  33 + // Prepar
  34 + $this->loadService('auth');
  35 + $this->authenticator=new auth($this->ret,$this->kt,$this->request,$this->auth);
23 36
24 - 37 +
25 //Make sure a token exists before continuing 38 //Make sure a token exists before continuing
26 if(!$this->verifyToken())return $this->render(); 39 if(!$this->verifyToken())return $this->render();
27 -  
28 - 40 +
  41 +
29 if(!$this->verifySession()){ 42 if(!$this->verifySession()){
30 $this->doLogin(); 43 $this->doLogin();
31 if(!$this->isAuthenticated())return $this->render(); 44 if(!$this->isAuthenticated())return $this->render();
32 } 45 }
33 46
34 - 47 + $this->dispatch();
  48 +
35 return $this->render(); 49 return $this->render();
36 } 50 }
  51 +
  52 + public function dispatch(){
  53 + $request=$this->request;
  54 + $this->loadService($request['service']);
  55 + $service=new $request['service']($this->ret,$this->kt,$this->request,$this->auth);
  56 + $this->ret->setTitle($request['service'].'::'.$request['function']);
  57 + if(method_exists($service,$request['function'])){
  58 + //$this->ret->setDebug('got here');
  59 + $service->$request['function']($request['parameters']);
  60 + }else{
  61 + $this->ret->addError("Service {$request['service']} does not contain the method: {$request['function']}");
  62 + return false;
  63 + }
  64 + }
37 65
38 - 66 +
39 public function loadService($serviceName=NULL){ 67 public function loadService($serviceName=NULL){
40 $version=$this->getVersion(); 68 $version=$this->getVersion();
41 if(!class_exists($serviceName)){ 69 if(!class_exists($serviceName)){
42 if(file_exists('services/'.$version.'/'.$serviceName.'.php')){ 70 if(file_exists('services/'.$version.'/'.$serviceName.'.php')){
43 require_once('services/'.$version.'/'.$serviceName.'.php'); 71 require_once('services/'.$version.'/'.$serviceName.'.php');
  72 + return true;
44 }else{ 73 }else{
45 throw new Exception('Service could not be found: '.$serviceName); 74 throw new Exception('Service could not be found: '.$serviceName);
  75 + return false;
46 } 76 }
47 } 77 }
48 } 78 }
49 - 79 +
50 protected function verifyToken(){ 80 protected function verifyToken(){
51 $token=isset($this->auth['token'])?$this->auth['token']:NULL; 81 $token=isset($this->auth['token'])?$this->auth['token']:NULL;
52 if(!$token){ 82 if(!$token){
53 - $token=md5(rand()*rand()); 83 + $token=md5(rand()*rand());
54 $this->ret->setStatus('random_token',$token); 84 $this->ret->setStatus('random_token',$token);
55 - return false; 85 + return false;
56 } 86 }
57 return true; 87 return true;
58 - }  
59 - 88 + }
  89 +
60 protected function getVersion(){ 90 protected function getVersion(){
61 if(!$this->version)$this->version=$this->req->getVersion(); 91 if(!$this->version)$this->version=$this->req->getVersion();
62 return $this->version; 92 return $this->version;
63 } 93 }
64 - 94 +
65 protected function verifySession(){ 95 protected function verifySession(){
66 - return false; 96 + return $this->authenticator->pickup_session();
67 } 97 }
68 - 98 +
69 protected function isAuthenticated(){ 99 protected function isAuthenticated(){
70 - 100 + return true;
71 } 101 }
72 - 102 +
73 protected function doLogin(){ 103 protected function doLogin(){
74 - $this->loadService('auth');  
75 - $auth=new auth($this->ret);  
76 - if(!$auth->login($this->auth)){ 104 + if($this->authenticator->login()){
77 return true; 105 return true;
78 }else{ 106 }else{
79 $this->ret->addError('Unsuccesful Login'); 107 $this->ret->addError('Unsuccesful Login');
80 return false; 108 return false;
81 } 109 }
82 } 110 }
83 - 111 +
84 public function render(){ 112 public function render(){
85 echo $this->ret->getJson(); 113 echo $this->ret->getJson();
86 return true; 114 return true;
87 } 115 }
88 - 116 +
89 } 117 }
90 ?> 118 ?>
91 \ No newline at end of file 119 \ No newline at end of file
webservice/clienttools/client_service.php 0 โ†’ 100644
  1 +<?php
  2 +
  3 +class client_service{
  4 + public $Response;
  5 + public $KT;
  6 + public $Request;
  7 + public $AuthInfo;
  8 +
  9 + public function __construct(&$ResponseObject,&$KT_Instance,&$Request,&$AuthInfo){
  10 + // set the response object
  11 +// if(get_class($ResponseObject)=='jsonResponseObject'){
  12 +// $this->Response=&$ResponseObject;
  13 +// }else{
  14 +// $this->Response=new jsonResponseObject();
  15 +// }
  16 +
  17 +
  18 + $this->Response=&$ResponseObject;
  19 + $this->KT=&$KT_Instance;
  20 + $this->AuthInfo=&$AuthInfo;
  21 + $this->Request=&$Request;
  22 + }
  23 +
  24 + protected function addResponse($name,$value){
  25 + $this->Response->setData($name,$value);
  26 + }
  27 +
  28 + protected function addDebug($name,$value){
  29 + $this->Response->setDebug($name,$value);
  30 + }
  31 +
  32 + protected function setResponse($value){
  33 + $this->Response->overwriteData($value);
  34 + }
  35 +
  36 + protected function addError($message,$code){
  37 + $this->Response->addError($message,$code);
  38 + }
  39 +
  40 + protected function xlate($var=NULL){
  41 + return $var;
  42 + }
  43 +
  44 +}
  45 +
  46 +?>
0 \ No newline at end of file 47 \ No newline at end of file
webservice/clienttools/comms.php
1 <?php 1 <?php
2 include_once('../../ktapi/ktapi.inc.php'); 2 include_once('../../ktapi/ktapi.inc.php');
3 -require_once("../../config/dmsDefaults.php");  
4 -error_reporting(E_ERROR&~E_WARNING); 3 +error_reporting(E_ERROR);
5 4
6 /** 5 /**
7 * Intercept Errors and Exceptions and provide a json response in return. 6 * Intercept Errors and Exceptions and provide a json response in return.
@@ -17,7 +16,7 @@ error_reporting(E_ERROR&amp;~E_WARNING); @@ -17,7 +16,7 @@ error_reporting(E_ERROR&amp;~E_WARNING);
17 function error_handler($e,$errstr=null,$errfile=null,$errline=null){ 16 function error_handler($e,$errstr=null,$errfile=null,$errline=null){
18 if($GLOBALS['RET']){ 17 if($GLOBALS['RET']){
19 $GLOBALS['RET']->addError($errfile?$errstr:$e->getmessage()); 18 $GLOBALS['RET']->addError($errfile?$errstr:$e->getmessage());
20 - $GLOBALS['RET']->setDebug('',$errfile?(array('error_number'=>$e,'error_string'=>$errstr,'error_file'=>$errfile,'error_line'=>$errline)):$e); 19 + $GLOBALS['RET']->setDebug($errfile?'ERR':'EXC',$errfile?(array('error_number'=>$e,'error_string'=>$errstr,'error_file'=>$errfile,'error_line'=>$errline)):$e);
21 echo $GLOBALS['RET']->getJson(); 20 echo $GLOBALS['RET']->getJson();
22 exit; 21 exit;
23 }; 22 };
@@ -27,23 +26,24 @@ function error_handler($e,$errstr=null,$errfile=null,$errline=null){ @@ -27,23 +26,24 @@ function error_handler($e,$errstr=null,$errfile=null,$errline=null){
27 * Set the error & exception handlers 26 * Set the error & exception handlers
28 */ 27 */
29 $old_exception_handler=set_exception_handler('error_handler'); 28 $old_exception_handler=set_exception_handler('error_handler');
30 -$old_error_handler=set_error_handler('error_handler',E_ALL); 29 +$old_error_handler=set_error_handler('error_handler',E_ERROR);
31 30
32 31
33 32
34 /** 33 /**
35 * Load additional generic libaries 34 * Load additional generic libaries
36 */ 35 */
37 -require_once("../../config/dmsDefaults.php");  
38 36
39 37
40 //Interpret the Json Object that was passed 38 //Interpret the Json Object that was passed
41 include_once('jsonWrapper.php'); 39 include_once('jsonWrapper.php');
42 include_once('ajaxhandler.php'); 40 include_once('ajaxhandler.php');
  41 +include_once('client_service.php');
43 42
44 //Instantiate base classes 43 //Instantiate base classes
  44 +$KT = new KTAPI();
45 $RET=new jsonResponseObject(); 45 $RET=new jsonResponseObject();
46 -$handler=new ajaxHandler($RET); 46 +$handler=new ajaxHandler($RET,$KT);
47 47
48 48
49 49
webservice/clienttools/comms(2).php renamed to webservice/clienttools/comms_old.php
webservice/clienttools/jsonWrapper.php
@@ -5,6 +5,7 @@ class jsonContentException extends Exception{ @@ -5,6 +5,7 @@ class jsonContentException extends Exception{
5 } 5 }
6 6
7 class jsonResponseObject{ 7 class jsonResponseObject{
  8 + protected $title='';
8 protected $errors=array(); 9 protected $errors=array();
9 protected $status=array('session_id'=>'','random_token'=>''); 10 protected $status=array('session_id'=>'','random_token'=>'');
10 protected $data=array(); 11 protected $data=array();
@@ -13,6 +14,7 @@ class jsonResponseObject{ @@ -13,6 +14,7 @@ class jsonResponseObject{
13 public $additional=array(); 14 public $additional=array();
14 15
15 public $response=array( 16 public $response=array(
  17 + 'requestName' =>'',
16 'errors' =>array( 18 'errors' =>array(
17 'hadErrors' =>0 , 19 'hadErrors' =>0 ,
18 'errors' =>array() 20 'errors' =>array()
@@ -39,6 +41,10 @@ class jsonResponseObject{ @@ -39,6 +41,10 @@ class jsonResponseObject{
39 $this->data[$varName]=$value; 41 $this->data[$varName]=$value;
40 } 42 }
41 43
  44 + public function overwriteData($value=NULL){
  45 + $this->data=$value;
  46 + }
  47 +
42 public function setDebug($varName=NULL,$value=NULL){ 48 public function setDebug($varName=NULL,$value=NULL){
43 $this->debug[$varName]=$value; 49 $this->debug[$varName]=$value;
44 } 50 }
@@ -47,8 +53,14 @@ class jsonResponseObject{ @@ -47,8 +53,14 @@ class jsonResponseObject{
47 $this->request=$request; 53 $this->request=$request;
48 } 54 }
49 55
  56 + public function setTitle($title=NULL){
  57 + $title=(string)$title;
  58 + $this->title=$title;
  59 + }
  60 +
50 public function getJson(){ 61 public function getJson(){
51 $response=array_merge(array( 62 $response=array_merge(array(
  63 + 'title' =>$this->title,
52 'errors' =>array( 64 'errors' =>array(
53 'hadErrors' =>(count($this->errors)>0?1:0), 65 'hadErrors' =>(count($this->errors)>0?1:0),
54 'errors' =>$this->errors 66 'errors' =>$this->errors
@@ -64,6 +76,8 @@ class jsonResponseObject{ @@ -64,6 +76,8 @@ class jsonResponseObject{
64 } 76 }
65 } 77 }
66 78
  79 +
  80 +
67 class jsonWrapper{ 81 class jsonWrapper{
68 public $raw=''; 82 public $raw='';
69 public $jsonArray=array(); 83 public $jsonArray=array();
webservice/clienttools/services/3.6.1/auth.php
1 <?php 1 <?php
2 2
3 -class auth{  
4 - protected $ret;  
5 -  
6 - public function __construct(&$ret=NULL){  
7 - // set the response object  
8 - if(get_class($ret)=='jsonResponseObject'){  
9 - $this->ret=&$ret;  
10 - }else{  
11 - $this->ret=new jsonResponseObject();  
12 - }  
13 - }  
14 -  
15 - public function login($params){ 3 +class auth extends client_service {
  4 +
  5 + public function login(){
  6 + $params=$this->AuthInfo;
16 7
17 $username=$params['user']; 8 $username=$params['user'];
18 $passhash=$params['passhash']; 9 $passhash=$params['passhash'];
@@ -21,33 +12,33 @@ class auth{ @@ -21,33 +12,33 @@ class auth{
21 $session_id=$params['session']; 12 $session_id=$params['session'];
22 $ip=$_SERVER['REMOTE_ADDR']; 13 $ip=$_SERVER['REMOTE_ADDR'];
23 $language=isset($params['language'])?$params['language']:'en'; 14 $language=isset($params['language'])?$params['language']:'en';
  15 +
  16 + $this->Response->setDebug('parameters',$params);
24 17
25 setcookie("kt_language", $language, 2147483647, '/'); 18 setcookie("kt_language", $language, 2147483647, '/');
26 19
27 -  
28 - $kt = new KTAPI();  
29 - 20 + $kt =& $this->KT;
30 21
31 -// if ($username != 'admin') {  
32 -// require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php');  
33 -//  
34 -// if (!BaobabKeyUtil::checkIfLicensed(true)) {  
35 -// return array('authenticated'=> false, 'message'=> 'license_expired');  
36 -// }  
37 -// } 22 + if ($username != 'admin') {
  23 + require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php');
  24 +
  25 + if (!BaobabKeyUtil::checkIfLicensed(true)) {
  26 + return array('authenticated'=> false, 'message'=> 'license_expired');
  27 + }
  28 + }
38 29
39 $user=$kt->get_user_object_by_username($username); 30 $user=$kt->get_user_object_by_username($username);
40 if(!PEAR::isError($user)){ 31 if(!PEAR::isError($user)){
41 $password=$user->getPassword(); 32 $password=$user->getPassword();
42 $localPassHash=md5($password.$token); 33 $localPassHash=md5($password.$token);
43 if($localPassHash==$passhash){ 34 if($localPassHash==$passhash){
44 - $session=array();  
45 - $this->ret->setDebug('trying to start session with',array('username'=>$username,'password'=>$password));  
46 - $session = $kt->start_session($username, $password, NULL, NULL); 35 + $session=new stdClass();
  36 + $this->Response->setDebug('trying to start session with',array('username'=>$username,'password'=>$password));
  37 + $session = $kt->start_session($username, $params['pass'],NULL,$app_type);
47 if(!PEAR::isError($session)){ 38 if(!PEAR::isError($session)){
48 - $this->ret->setStatus('session_id',$session); 39 + $this->Response->setStatus('session_id',$session->get_session());
49 }else{ 40 }else{
50 - $this->ret->setDebug('failed login',$session); 41 + $this->Response->setDebug('failed login',print_r($session,true));
51 throw new Exception('Unknown Login Error'); 42 throw new Exception('Unknown Login Error');
52 return false; 43 return false;
53 } 44 }
@@ -61,6 +52,21 @@ class auth{ @@ -61,6 +52,21 @@ class auth{
61 } 52 }
62 return true; 53 return true;
63 } 54 }
  55 +
  56 + public function pickup_session(){
  57 + $params=$this->AuthInfo;
  58 + $app_type=$params['appType'];
  59 + $session_id=$params['session'];
  60 + $ip=$_SERVER['REMOTE_ADDR'];
  61 +
  62 + $session = $this->KT->get_active_session($session_id, $ip, $app_type);
  63 +
  64 + if (PEAR::isError($session)){
  65 + return false;
  66 + }
  67 + $this->Response->setStatus('session_id',$session->get_session());
  68 + return true;
  69 + }
64 } 70 }
65 71
66 ?> 72 ?>
67 \ No newline at end of file 73 \ No newline at end of file
webservice/clienttools/services/3.6.1/list.service.php renamed to webservice/clienttools/services/3.6.1/kt.php
1 <?php 1 <?php
2 -class clientTools_service_list_361 extends clientTools_service {  
3 - var $ktapi;  
4 - var $dfp;  
5 -  
6 - public function __construct(&$kt,&$session,&$session_id){  
7 - parent::__construct(&$kt,&$session,&$session_id);  
8 - $this->ktapi=$kt;  
9 - } 2 +class kt extends client_service {
10 3
11 /** 4 /**
12 * Get Supported (?) Languages 5 * Get Supported (?) Languages
@@ -30,28 +23,24 @@ class clientTools_service_list_361 extends clientTools_service { @@ -30,28 +23,24 @@ class clientTools_service_list_361 extends clientTools_service {
30 } 23 }
31 } 24 }
32 25
33 - $this->setResponse('language_info',array('languages' => $languages, 'count' => count($languages), 'defaultLanguage' => $default->defaultLanguage)); 26 + $this->setResponse(array('languages' => $languages, 'count' => count($languages), 'defaultLanguage' => $default->defaultLanguage));
34 } 27 }
35 28
36 29
37 function get_rootfolder_detail($params){ 30 function get_rootfolder_detail($params){
38 $params['folderId'] = '1'; 31 $params['folderId'] = '1';
39 - $this->setResponse($this->get_folder_detail($params)); 32 + $this->get_folder_detail($params);
40 } 33 }
41 34
42 35
43 function get_folder_detail($params) { 36 function get_folder_detail($params) {
44 - $kt = &$this->ktapi;  
45 -// if (is_array($kt))  
46 -// {  
47 -// $this->response= $kt;  
48 -// } 37 + $kt = &$this->KT;
49 38
50 $folder = &$kt->get_folder_by_id($params['folderId']); 39 $folder = &$kt->get_folder_by_id($params['folderId']);
51 if (PEAR::isError($folder)) 40 if (PEAR::isError($folder))
52 { 41 {
53 - $this->setError(self::ERR_SERVICE_RESOURCE_NOT_FOUND ,"Could not get folder by Id: {$params['folderId']}");  
54 - $this->setDebug('FolderError'.self::ERR_SERVICE_RESOURCE_NOT_FOUND ,array('kt'=>$kt,'folder'=>$folder)); 42 + $this->setError("Could not get folder by Id: {$params['folderId']}");
  43 + $this->setDebug('FolderError',array('kt'=>$kt,'folder'=>$folder));
55 return; 44 return;
56 } 45 }
57 46
@@ -65,7 +54,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -65,7 +54,7 @@ class clientTools_service_list_361 extends clientTools_service {
65 $detail['folder_name'] = 'KnowledgeTree'; 54 $detail['folder_name'] = 'KnowledgeTree';
66 } 55 }
67 56
68 - $qtip .= _kt('Folder name').": {$detail['folder_name']}<br>"; 57 + $qtip .= $this->xlate('Folder name').": {$detail['folder_name']}<br>";
69 $class = 'folder'; 58 $class = 'folder';
70 59
71 $permissions = $detail['permissions']; 60 $permissions = $detail['permissions'];
@@ -80,13 +69,13 @@ class clientTools_service_list_361 extends clientTools_service { @@ -80,13 +69,13 @@ class clientTools_service_list_361 extends clientTools_service {
80 { 69 {
81 case 'W': 70 case 'W':
82 $canWrite = true; 71 $canWrite = true;
83 - $perms .= _kt('write, '); 72 + $perms .= $this->xlate('write, ');
84 break; 73 break;
85 case 'R': 74 case 'R':
86 - $perms .= _kt('read, '); 75 + $perms .= $this->xlate('read, ');
87 break; 76 break;
88 case 'A': 77 case 'A':
89 - $perms .= _kt('add folder, '); 78 + $perms .= $this->xlate('add folder, ');
90 break; 79 break;
91 } 80 }
92 } 81 }
@@ -98,10 +87,10 @@ class clientTools_service_list_361 extends clientTools_service { @@ -98,10 +87,10 @@ class clientTools_service_list_361 extends clientTools_service {
98 } 87 }
99 88
100 //permissions 89 //permissions
101 - $qtip .= _kt('Permissions:') . " {$perms}<br>"; 90 + $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
102 91
103 //comment 92 //comment
104 - $qtip .= $canWrite ? _kt('You may add content to this folder') : _kt('You may not add content to this folder'); 93 + $qtip .= $canWrite ? $this->xlate('You may add content to this folder') : $this->xlate('You may not add content to this folder');
105 94
106 $result[] = array 95 $result[] = array
107 ( 96 (
@@ -116,130 +105,33 @@ class clientTools_service_list_361 extends clientTools_service { @@ -116,130 +105,33 @@ class clientTools_service_list_361 extends clientTools_service {
116 'qtip'=> $qtip 105 'qtip'=> $qtip
117 ); 106 );
118 107
119 - $this->response= $result; 108 + $this->setResponse($result);
120 } 109 }
121 110
122 111
123 -}  
124 -  
125 -  
126 -/*  
127 -  
128 -  
129 -  
130 -  
131 - function get_folder_detail($params)  
132 - {  
133 - $kt = &$this->get_ktapi($params['session_id'], $params['application']);  
134 - if (is_array($kt))  
135 - {  
136 - $this->response= $kt;  
137 - } 112 + function get_folder_contents($params){
  113 + $kt=&$this->KT;
138 114
139 $params['control'] = 'F_'; 115 $params['control'] = 'F_';
140 $params['node'] = substr($params['node'], strlen($params['control'])); 116 $params['node'] = substr($params['node'], strlen($params['control']));
141 117
142 $folder = &$kt->get_folder_by_id($params['node']); 118 $folder = &$kt->get_folder_by_id($params['node']);
143 - if (PEAR::isError($folder))  
144 - {  
145 - $this->response= "folder error {$params['node']}"; 119 + if (PEAR::isError($folder)){
  120 + $this->addError("[error 1] Folder Not Found: {$params['control']}{$params['node']}");
  121 + return false;
146 } 122 }
147 123
148 - $detail = $folder->get_detail();  
149 - if (PEAR::isError($detail))  
150 - {  
151 - $this->response= "detail error {$params['node']}";  
152 - }  
153 -  
154 - if(strtolower($detail['folder_name']) == 'root folder') {  
155 - $detail['folder_name'] = 'KnowledgeTree';  
156 - }  
157 -  
158 - $qtip .= _kt('Folder name').": {$detail['folder_name']}<br>";  
159 - $class = 'folder';  
160 -  
161 - $permissions = $detail['permissions'];  
162 - $perms = '';  
163 - //default write permissions to false  
164 - $canWrite = false;  
165 -  
166 - //iterate through the permissions and convert to human-readable  
167 - for ($j = 0; $j < strlen($permissions); $j++)  
168 - {  
169 - switch (strtoupper($permissions{$j}))  
170 - {  
171 - case 'W':  
172 - $canWrite = true;  
173 - $perms .= _kt('write, ');  
174 - break;  
175 - case 'R':  
176 - $perms .= _kt('read, ');  
177 - break;  
178 - case 'A':  
179 - $perms .= _kt('add folder, ');  
180 - break;  
181 - }  
182 - }  
183 -  
184 - //now chop off trailing ', ' if any  
185 - if (strlen($perms) > 2)  
186 - {  
187 - $perms = substr($perms, 0, strlen($perms)-2);  
188 - }  
189 -  
190 - //permissions  
191 - $qtip .= _kt('Permissions:') . " {$perms}<br>";  
192 -  
193 - //comment  
194 - $qtip .= $canWrite ? _kt('You may add content to this folder') : _kt('You may not add content to this folder');  
195 -  
196 - $result[] = array  
197 - (  
198 - 'text' => $detail['folder_name'],  
199 - 'id' => $params['control'] . $params['node'],  
200 - 'filename' => $detail['folder_name'],  
201 - 'cls' => 'folder',  
202 - 'leaf' => false,  
203 - 'document_type' => '',  
204 - 'item_type' => 'F',  
205 - 'permissions' => $permissions,  
206 - 'qtip'=> $qtip  
207 - );  
208 -  
209 - $this->response= $result;  
210 - }  
211 -  
212 - function get_folder_contents($arr)  
213 - {  
214 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']);  
215 -  
216 - if (is_array($kt))  
217 - {  
218 - $this->response= $kt;  
219 - }  
220 -  
221 - $arr['control'] = 'F_';  
222 - $arr['node'] = substr($arr['node'], strlen($arr['control']));  
223 -  
224 - $folder = &$kt->get_folder_by_id($arr['node']);  
225 - if (PEAR::isError($folder))  
226 - {  
227 - $response = 'error';  
228 -  
229 - $this->response= 'error 1';  
230 - }  
231 -  
232 - $types = (isset($arr['types']) ? $arr['types'] : 'DF'); 124 + $types = (isset($params['types']) ? $params['types'] : 'DF');
233 125
234 $listing = $folder->get_listing(1, $types); 126 $listing = $folder->get_listing(1, $types);
235 127
236 - $result = ListController::_processListing($listing, 'folderContents', $arr); 128 + $result = $this->_processListing($listing, 'folderContents', $params);
237 129
238 - $this->response= $result; 130 + $this->setResponse($result);
239 } 131 }
240 132
241 - private function _processListing($listing, $type, $arr)  
242 - { 133 +
  134 + private function _processListing($listing, $type, $arr){
243 $result = array(); 135 $result = array();
244 $methodToIncludeItem = '_processItemInclusion_'.$type; 136 $methodToIncludeItem = '_processItemInclusion_'.$type;
245 137
@@ -269,13 +161,13 @@ class clientTools_service_list_361 extends clientTools_service { @@ -269,13 +161,13 @@ class clientTools_service_list_361 extends clientTools_service {
269 { 161 {
270 case 'W': 162 case 'W':
271 $canWrite = true; 163 $canWrite = true;
272 - $perms .= _kt('write, '); 164 + $perms .= $this->xlate('write, ');
273 break; 165 break;
274 case 'R': 166 case 'R':
275 - $perms .= _kt('read, '); 167 + $perms .= $this->xlate('read, ');
276 break; 168 break;
277 case 'A': 169 case 'A':
278 - $perms .= _kt('add folder, '); 170 + $perms .= $this->xlate('add folder, ');
279 break; 171 break;
280 // default: 172 // default:
281 // $perms .= strtoupper($permissions{$j}); 173 // $perms .= strtoupper($permissions{$j});
@@ -292,14 +184,14 @@ class clientTools_service_list_361 extends clientTools_service { @@ -292,14 +184,14 @@ class clientTools_service_list_361 extends clientTools_service {
292 //folders 184 //folders
293 if ($itemType == 'F') 185 if ($itemType == 'F')
294 { 186 {
295 - $qtip .= _kt('Folder name').": {$filename}<br>"; 187 + $qtip .= $this->xlate('Folder name').": {$filename}<br>";
296 $class = 'folder'; 188 $class = 'folder';
297 189
298 //permissions 190 //permissions
299 - $qtip .= _kt('Permissions:') . " {$perms}<br>"; 191 + $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
300 192
301 //comment 193 //comment
302 - $qtip .= $canWrite ? _kt('You may add content to this folder') : _kt('You may not add content to this folder'); 194 + $qtip .= $canWrite ? $this->xlate('You may add content to this folder') : $this->xlate('You may not add content to this folder');
303 } 195 }
304 196
305 //documents 197 //documents
@@ -331,19 +223,19 @@ class clientTools_service_list_361 extends clientTools_service { @@ -331,19 +223,19 @@ class clientTools_service_list_361 extends clientTools_service {
331 else 223 else
332 { 224 {
333 //filename 225 //filename
334 - $qtip .= _kt('Filename') . ": {$filename}<br>"; 226 + $qtip .= $this->xlate('Filename') . ": {$filename}<br>";
335 227
336 //size 228 //size
337 - $qtip .= _kt('File Size') . ": " . fsize_desc($item['filesize']) . "<br>"; 229 + $qtip .= $this->xlate('File Size') . ": " . fsize_desc($item['filesize']) . "<br>";
338 230
339 //last modified 231 //last modified
340 - $qtip .= _kt('Modified') . ": {$item['modified_date']}<br>"; 232 + $qtip .= $this->xlate('Modified') . ": {$item['modified_date']}<br>";
341 233
342 //owner 234 //owner
343 - $qtip .= _kt('Owner') . ": {$item['created_by']}<br>"; 235 + $qtip .= $this->xlate('Owner') . ": {$item['created_by']}<br>";
344 236
345 //version 237 //version
346 - $qtip .= _kt('Version') . ": {$item['version']}<br>"; 238 + $qtip .= $this->xlate('Version') . ": {$item['version']}<br>";
347 239
348 //immutability 240 //immutability
349 if (bool2str(strtolower($item['is_immutable'])) == 'true') 241 if (bool2str(strtolower($item['is_immutable'])) == 'true')
@@ -355,49 +247,50 @@ class clientTools_service_list_361 extends clientTools_service { @@ -355,49 +247,50 @@ class clientTools_service_list_361 extends clientTools_service {
355 //status, i.e. checked out or not, or immutable 247 //status, i.e. checked out or not, or immutable
356 if ($immutable) 248 if ($immutable)
357 { 249 {
358 - $qtip .= _kt('Status: Immutable') . '<br>'; 250 + $qtip .= $this->xlate('Status: Immutable') . '<br>';
359 } 251 }
360 else if (strtolower($item['checked_out_by']) != 'n/a' && ($item['checked_out_by'] != '')) 252 else if (strtolower($item['checked_out_by']) != 'n/a' && ($item['checked_out_by'] != ''))
361 { 253 {
362 - $qtip .= _kt('Status: Checked out by') . " {$item['checked_out_by']}<br>"; 254 + $qtip .= $this->xlate('Status: Checked out by') . " {$item['checked_out_by']}<br>";
363 } 255 }
364 else 256 else
365 { 257 {
366 - $qtip .= _kt('Status: Available') . '<br>'; 258 + $qtip .= $this->xlate('Status: Available') . '<br>';
367 } 259 }
368 260
369 //permissions 261 //permissions
370 - $qtip .= _kt('Permissions:') . " {$perms}<br>"; 262 + $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
371 263
372 //immutable 264 //immutable
373 if($immutable) 265 if($immutable)
374 { 266 {
375 - $qtip .= _kt('This document is not editable'); 267 + $qtip .= $this->xlate('This document is not editable');
376 } 268 }
377 else if ($canWrite) 269 else if ($canWrite)
378 { 270 {
379 - $qtip .= _kt('You may edit this document'); 271 + $qtip .= $this->xlate('You may edit this document');
380 } 272 }
381 else 273 else
382 { 274 {
383 - $qtip .= _kt('This document is not editable'); 275 + $qtip .= $this->xlate('This document is not editable');
384 } 276 }
385 } 277 }
386 }//end of if for files 278 }//end of if for files
387 if($includeMe) 279 if($includeMe)
388 { 280 {
389 - $result[] = ListController::$methodToIncludeItem($item, $class, $qtip); 281 + $result[] = $this->$methodToIncludeItem($item, $class, $qtip);
390 } 282 }
391 } 283 }
392 284
393 - $this->response= $result; 285 + return $result;
394 } 286 }
395 287
396 288
397 289
  290 +
398 private function _processItemInclusion_folderContents($item, $class, $qtip) 291 private function _processItemInclusion_folderContents($item, $class, $qtip)
399 { 292 {
400 - $this->response= array ( 293 + return array (
401 'text' => htmlspecialchars($item['title']), 294 'text' => htmlspecialchars($item['title']),
402 'originaltext' => $item['title'], 295 'originaltext' => $item['title'],
403 'id' => ($item['item_type'] == 'F' ? $item['item_type']."_" : "").$item['id'], 296 'id' => ($item['item_type'] == 'F' ? $item['item_type']."_" : "").$item['id'],
@@ -415,7 +308,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -415,7 +308,7 @@ class clientTools_service_list_361 extends clientTools_service {
415 308
416 private function _processItemInclusion_search($item, $class, $qtip) 309 private function _processItemInclusion_search($item, $class, $qtip)
417 { 310 {
418 - $this->response= array ( 311 + return array (
419 'text' => htmlspecialchars($item['title']), 312 'text' => htmlspecialchars($item['title']),
420 'originaltext' => $item['title'], 313 'originaltext' => $item['title'],
421 'id' => $item['document_id'], 314 'id' => $item['document_id'],
@@ -431,27 +324,23 @@ class clientTools_service_list_361 extends clientTools_service { @@ -431,27 +324,23 @@ class clientTools_service_list_361 extends clientTools_service {
431 ); 324 );
432 } 325 }
433 326
  327 +
434 328
  329 + public function get_metadata($params) {
435 330
436 - function get_metadata($arr) { 331 + $kt = &$this->KT;
437 332
438 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']);  
439 - if (is_array($kt))  
440 - {  
441 - $this->response= $kt;  
442 - }  
443 -  
444 - $document_id = (int)$arr['document_id']; 333 + $document_id = (int)$params['document_id'];
445 if($document_id > 0) { 334 if($document_id > 0) {
446 - $document = $kt->get_document_by_id($arr['document_id']); 335 + $document = $kt->get_document_by_id($params['document_id']);
447 $detail = $document->get_metadata(); 336 $detail = $document->get_metadata();
448 $document_detail = $document->get_detail(); 337 $document_detail = $document->get_detail();
449 $title = $document_detail['title']; 338 $title = $document_detail['title'];
450 $document_type = $document_detail['document_type']; 339 $document_type = $document_detail['document_type'];
451 340
452 } else { 341 } else {
453 - if(isset($arr['document_type'])) {  
454 - $document_type = $arr['document_type']; 342 + if(isset($params['document_type'])) {
  343 + $document_type = $params['document_type'];
455 } else { 344 } else {
456 $document_type = 'Default'; 345 $document_type = 'Default';
457 } 346 }
@@ -467,14 +356,14 @@ class clientTools_service_list_361 extends clientTools_service { @@ -467,14 +356,14 @@ class clientTools_service_list_361 extends clientTools_service {
467 356
468 // Commented out for timebeing - will be used by 'Save in Format' 357 // Commented out for timebeing - will be used by 'Save in Format'
469 358
470 - if (isset($arr['extensions'])) { 359 + if (isset($params['extensions'])) {
471 360
472 $fileParts = pathinfo($document_detail['filename']); 361 $fileParts = pathinfo($document_detail['filename']);
473 362
474 - $items[] = array("name" => "__document_extension", "index" => 0, "value" => strtolower($fileParts['extension']), "control_type" => "lookup", "selection" => explode(',', str_replace('.', '', $arr['extensions']))); 363 + $items[] = array("name" => "__document_extension", "index" => 0, "value" => strtolower($fileParts['extension']), "control_type" => "lookup", "selection" => explode(',', str_replace('.', '', $params['extensions'])));
475 } 364 }
476 365
477 - $document_types = $this->get_documenttypes($arr); 366 + $document_types = $this->get_documenttypes($params);
478 $json_document_types = array(); 367 $json_document_types = array();
479 foreach($document_types['items'] as $val) { 368 foreach($document_types['items'] as $val) {
480 $json_document_types[] = $val['name']; 369 $json_document_types[] = $val['name'];
@@ -506,18 +395,15 @@ class clientTools_service_list_361 extends clientTools_service { @@ -506,18 +395,15 @@ class clientTools_service_list_361 extends clientTools_service {
506 } 395 }
507 396
508 397
509 - $this->response= array('id' => $title, 'items' => $items, 'count' => count($items)); 398 + $this->setResponse(array('id' => $title, 'items' => $items, 'count' => count($items)));
510 399
511 400
512 } 401 }
513 402
514 - function get_documenttypes($arr) {  
515 403
516 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']);  
517 - if (is_array($kt))  
518 - {  
519 - $this->response= $kt;  
520 - } 404 + public function get_documenttypes($params) {
  405 +
  406 + $kt = &$this->KT;
521 407
522 $detail = $kt->get_documenttypes(); 408 $detail = $kt->get_documenttypes();
523 $result = array(); 409 $result = array();
@@ -526,50 +412,39 @@ class clientTools_service_list_361 extends clientTools_service { @@ -526,50 +412,39 @@ class clientTools_service_list_361 extends clientTools_service {
526 if(strtolower(substr($detail[$i], -5)) != 'email') 412 if(strtolower(substr($detail[$i], -5)) != 'email')
527 { 413 {
528 $items[] = array( 414 $items[] = array(
529 - 'name' => $detail[$i] 415 + 'name' => $detail[$i]
530 ); 416 );
531 } 417 }
532 } 418 }
533 - $this->response= array('items' => $items, 'count' => count($items));  
534 -  
535 - 419 + $this->setResponse(array('items' => $items, 'count' => count($items)));
536 } 420 }
537 421
538 - function update_document_type($arr) {  
539 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']);  
540 - if (is_array($kt))  
541 - {  
542 - $this->response= $kt;  
543 - }  
544 - $document_id = (int)$arr['document_id']; 422 + function update_document_type($params) {
  423 + $kt = &$this->KT;
  424 + $document_id = (int)$params['document_id'];
545 if($document_id > 0) { 425 if($document_id > 0) {
546 $document = $kt->get_document_by_id($document_id); 426 $document = $kt->get_document_by_id($document_id);
547 - $document->change_document_type($arr['document_type']);  
548 - $this->response= array('status_code' => 0);  
549 - 427 + $document->change_document_type($params['document_type']);
  428 + $this->setResponse(array('status_code' => 0));
  429 + return true;
  430 +
  431 + }else{
  432 + $this->addError("Invalid document Id : {$document_id}");
  433 + $this->setResponse(array('status_code' => 1));
  434 + return false;
550 } 435 }
551 436
552 - $this->response= array('status_code' => 1);  
553 -  
554 } 437 }
555 438
  439 + function download_document($params) {
556 440
557 - function debug($str) {  
558 - $this->response= true;  
559 - if(!is_resource($this->dfp)) {  
560 - $this->dfp = fopen("./debug.log", "a+");  
561 - }  
562 - fwrite($this->dfp, strftime("[DEBUG %Y-%m-%d %H:%M:%S] ").$str."\r\n");  
563 - }  
564 -  
565 - function download_document($params)  
566 - {  
567 -  
568 - $kt = &$this->get_ktapi($params['session_id'], $params['application']);  
569 - if (is_array($kt))  
570 - {  
571 - $this->response= array('status_code' => 1);  
572 - } 441 + $kt=&$this->KT;
  442 + $params['session_id']=$params['session_id']?$params['session_id']:$this->AuthInfo['session'];
  443 + $params['app_type']=$params['app_type']?$params['app_type']:$this->AuthInfo['appType'];
  444 +
  445 + $this->addDebug('parameters',$params);
  446 +
  447 + $session_id=$params['session_id'];
573 448
574 449
575 $document = &$kt->get_document_by_id($params['document_id']); 450 $document = &$kt->get_document_by_id($params['document_id']);
@@ -580,14 +455,16 @@ class clientTools_service_list_361 extends clientTools_service { @@ -580,14 +455,16 @@ class clientTools_service_list_361 extends clientTools_service {
580 $response['message'] = $document->getMessage(); 455 $response['message'] = $document->getMessage();
581 $this->debug("download_document - cannot get $document_id - " . $document->getMessage(), $session_id); 456 $this->debug("download_document - cannot get $document_id - " . $document->getMessage(), $session_id);
582 457
583 - $this->response= new SOAP_Value('$this->response=',"{urn:$this->namespace}kt_response", $response); 458 + $this->setResponse(new SOAP_Value('$this->response=',"{urn:$this->namespace}kt_response", $response));
  459 + return;
584 } 460 }
585 461
586 $result = $document->download(); 462 $result = $document->download();
587 if (PEAR::isError($result)) 463 if (PEAR::isError($result))
588 { 464 {
589 $response['message'] = $result->getMessage(); 465 $response['message'] = $result->getMessage();
590 - $this->response= array('status_code' => 1, 'message' => $result->getMessage()); 466 + $this->setResponse(array('status_code' => 1, 'message' => $result->getMessage()));
  467 + return;
591 } 468 }
592 469
593 $session = &$kt->get_session(); 470 $session = &$kt->get_session();
@@ -599,32 +476,37 @@ class clientTools_service_list_361 extends clientTools_service { @@ -599,32 +476,37 @@ class clientTools_service_list_361 extends clientTools_service {
599 $response['status_code'] = 0; 476 $response['status_code'] = 0;
600 $response['message'] = $url; 477 $response['message'] = $url;
601 $response['filename'] = $docname; 478 $response['filename'] = $docname;
602 - $this->response= $response; 479 + $this->setResponse($response);
603 } 480 }
604 481
605 - function checkout_document($params)  
606 - {  
607 - //$this->debug("checkout_document('$session_id',$document_id,'$reason')");  
608 - 482 +
  483 + /**
  484 + * Checkout a Document
  485 + * params contains:
  486 + * document_id the id of the document
  487 + * reason the checkout reason
  488 + *
  489 + * @param array $params
  490 + *
  491 + */
  492 + function checkout_document($params){
609 $responseType = 'kt_response'; 493 $responseType = 'kt_response';
610 -  
611 - $kt = &$this->get_ktapi($params['session_id'], $params['application']);  
612 - if (is_array($kt))  
613 - {  
614 - $this->response= array('status_code' => 1);  
615 - } 494 + $kt=&$this->KT;
616 495
617 $document = &$kt->get_document_by_id($params['document_id']); 496 $document = &$kt->get_document_by_id($params['document_id']);
618 if (PEAR::isError($document)) 497 if (PEAR::isError($document))
619 { 498 {
620 - $this->debug("checkout_document - cannot get documentid {$params['document_id']} - " . $document->getMessage());  
621 - $this->response= array('status_code' => 1, 'message' => $document->getMessage()); 499 + $this->addError("checkout_document - cannot get documentid {$params['document_id']} - " . $document->getMessage());
  500 + $this->setResponse(array('status_code' => 1, 'message' => $document->getMessage()));
  501 + return;
622 } 502 }
623 503
624 $result = $document->checkout($params['reason']); 504 $result = $document->checkout($params['reason']);
625 if (PEAR::isError($result)) 505 if (PEAR::isError($result))
626 { 506 {
627 - $this->response= array('status_code' => 1, 'message' => $result->getMessage()); 507 + $this->addError($result->getMessage());
  508 + $this->setResponse(array('status_code' => 1, 'message' => $result->getMessage()));
  509 + return;
628 } 510 }
629 511
630 $url = ''; 512 $url = '';
@@ -636,12 +518,69 @@ class clientTools_service_list_361 extends clientTools_service { @@ -636,12 +518,69 @@ class clientTools_service_list_361 extends clientTools_service {
636 $url = $download_manager->allow_download($document); 518 $url = $download_manager->allow_download($document);
637 } 519 }
638 520
639 - $this->response= array('status_code' => 0, 'message' => $url); 521 + $this->setResponse(array('status_code' => 0, 'message' => $url));
640 } 522 }
641 523
642 524
643 - function add_document_with_metadata($arr)  
644 - { 525 + /**
  526 + * Checkin Document //TODO: Find out how upload works
  527 + * params contains:
  528 + * document_id
  529 + * filename
  530 + * reason
  531 + * tempfilename
  532 + *
  533 + * @param array $params
  534 + */
  535 + function checkin_document($params){
  536 + $session_id = $this->AuthInfo['session'];
  537 + $document_id = $params['document_id'];
  538 + $filename = $params['filename'];
  539 + $reason = $params['reason'];
  540 + $tempfilename = $params['tempfilename'];
  541 + $application = $this->AuthInfo['appType'];
  542 +
  543 + $this->addDebug('Checkin',"checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application')");
  544 + $kt = &$this->KT;
  545 +
  546 + // we need to add some security to ensure that people don't frig the checkin process to access restricted files.
  547 + // possibly should change 'tempfilename' to be a hash or id of some sort if this is troublesome.
  548 + $upload_manager = new KTUploadManager();
  549 + if (!$upload_manager->is_valid_temporary_file($tempfilename))
  550 + {
  551 + $this->setResponse(array('status_code' => 12));
  552 + return;
  553 + }
  554 +
  555 + $document = &$kt->get_document_by_id($document_id);
  556 + if (PEAR::isError($document))
  557 + {
  558 + $this->setResponse(array('status_code' => 13));
  559 + }
  560 +
  561 + // checkin
  562 + $result = $document->checkin($filename, $reason, $tempfilename, false);
  563 + if (PEAR::isError($result))
  564 + {
  565 + $this->setResponse(array('status_code' => 14));
  566 + }
  567 +
  568 + // get status after checkin
  569 + //$this->response= $this->get_document_detail($session_id, $document_id);
  570 + $detail = $document->get_detail();
  571 + $detail['status_code'] = 0;
  572 + $detail['message'] = '';
  573 +
  574 + $this->setResponse($detail);
  575 + }
  576 +
  577 +
  578 + /**
  579 + * Upload a document
  580 + *
  581 + * @param unknown_type $arr
  582 + */
  583 + function add_document_with_metadata($arr){
645 $session_id = $arr['session_id']; 584 $session_id = $arr['session_id'];
646 //error_reporting(E_ALL); 585 //error_reporting(E_ALL);
647 $metadata = array(); 586 $metadata = array();
@@ -680,7 +619,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -680,7 +619,7 @@ class clientTools_service_list_361 extends clientTools_service {
680 $this->response= $update_result; 619 $this->response= $update_result;
681 } 620 }
682 621
683 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']); 622 + $kt = &$this->KT;
684 if (is_array($kt)) 623 if (is_array($kt))
685 { 624 {
686 $this->response= array('status_code' => 1); 625 $this->response= array('status_code' => 1);
@@ -703,6 +642,33 @@ class clientTools_service_list_361 extends clientTools_service { @@ -703,6 +642,33 @@ class clientTools_service_list_361 extends clientTools_service {
703 $this->response= array('status_code' => 0, 'document_id' => $document_id, 'content_id' => $content_id); 642 $this->response= array('status_code' => 0, 'document_id' => $document_id, 'content_id' => $content_id);
704 } 643 }
705 644
  645 +}
  646 +
  647 +
  648 +/*
  649 +
  650 +
  651 +
  652 +
  653 +
  654 +
  655 +
  656 +
  657 +
  658 +
  659 +
  660 +
  661 + function debug($str) {
  662 + $this->response= true;
  663 + if(!is_resource($this->dfp)) {
  664 + $this->dfp = fopen("./debug.log", "a+");
  665 + }
  666 + fwrite($this->dfp, strftime("[DEBUG %Y-%m-%d %H:%M:%S] ").$str."\r\n");
  667 + }
  668 +
  669 +
  670 +
  671 +
706 function add_document_params($params) 672 function add_document_params($params)
707 { 673 {
708 $session_id = $params['session_id']; 674 $session_id = $params['session_id'];
@@ -714,7 +680,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -714,7 +680,7 @@ class clientTools_service_list_361 extends clientTools_service {
714 $application = $params['application']; 680 $application = $params['application'];
715 681
716 $this->debug('Entered add_document'); 682 $this->debug('Entered add_document');
717 - $kt = &$this->get_ktapi($session_id, $application); 683 + $kt = &$this->get$this->xlateapi($session_id, $application);
718 if (is_array($kt)) 684 if (is_array($kt))
719 { 685 {
720 $this->response= array('status_code' => 1); 686 $this->response= array('status_code' => 1);
@@ -756,7 +722,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -756,7 +722,7 @@ class clientTools_service_list_361 extends clientTools_service {
756 function add_document($session_id, $folder_id, $title, $filename, $documenttype, $tempfilename, $application) 722 function add_document($session_id, $folder_id, $title, $filename, $documenttype, $tempfilename, $application)
757 { 723 {
758 $this->debug('Entered add_document'); 724 $this->debug('Entered add_document');
759 - $kt = &$this->get_ktapi($session_id, $application); 725 + $kt = &$this->get$this->xlateapi($session_id, $application);
760 if (is_array($kt)) 726 if (is_array($kt))
761 { 727 {
762 $this->response= array('status_code' => 1); 728 $this->response= array('status_code' => 1);
@@ -794,55 +760,10 @@ class clientTools_service_list_361 extends clientTools_service { @@ -794,55 +760,10 @@ class clientTools_service_list_361 extends clientTools_service {
794 } 760 }
795 761
796 762
797 - function checkin_document($params)  
798 - {  
799 - $session_id = $params['session_id'];  
800 - $document_id = $params['document_id'];  
801 - $filename = $params['filename'];  
802 - $reason = $params['reason'];  
803 - $tempfilename = $params['tempfilename'];  
804 - $application = $params['application'];  
805 -  
806 - $this->debug("checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application')");  
807 - $kt = &$this->get_ktapi($session_id, $application );  
808 - if (is_array($kt))  
809 - {  
810 - $this->response= array('status_code' => 11);  
811 - }  
812 -  
813 - // we need to add some security to ensure that people don't frig the checkin process to access restricted files.  
814 - // possibly should change 'tempfilename' to be a hash or id of some sort if this is troublesome.  
815 - $upload_manager = new KTUploadManager();  
816 - if (!$upload_manager->is_valid_temporary_file($tempfilename))  
817 - {  
818 - $this->response= array('status_code' => 12);  
819 - }  
820 -  
821 - $document = &$kt->get_document_by_id($document_id);  
822 - if (PEAR::isError($document))  
823 - {  
824 - $this->response= array('status_code' => 13);  
825 - }  
826 -  
827 - // checkin  
828 - $result = $document->checkin($filename, $reason, $tempfilename, false);  
829 - if (PEAR::isError($result))  
830 - {  
831 - $this->response= array('status_code' => 14);  
832 - }  
833 -  
834 - // get status after checkin  
835 - //$this->response= $this->get_document_detail($session_id, $document_id);  
836 - $detail = $document->get_detail();  
837 - $detail['status_code'] = 0;  
838 - $detail['message'] = '';  
839 -  
840 - $this->response= $detail;  
841 - }  
842 763
843 function delete_document($session_id, $document_id, $reason, $application) 764 function delete_document($session_id, $document_id, $reason, $application)
844 { 765 {
845 - $kt = &$this->get_ktapi($session_id, $application ); 766 + $kt = &$this->get$this->xlateapi($session_id, $application );
846 if (is_array($kt)) 767 if (is_array($kt))
847 { 768 {
848 $this->response= array('status_code' => 1); 769 $this->response= array('status_code' => 1);
@@ -869,7 +790,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -869,7 +790,7 @@ class clientTools_service_list_361 extends clientTools_service {
869 function update_document_metadata($session_id, $document_id, $metadata, $application, $sysdata=null) 790 function update_document_metadata($session_id, $document_id, $metadata, $application, $sysdata=null)
870 { 791 {
871 $this->debug('entered update_document_metadata'); 792 $this->debug('entered update_document_metadata');
872 - $kt = &$this->get_ktapi($session_id, $application ); 793 + $kt = &$this->get$this->xlateapi($session_id, $application );
873 $responseType = 'kt_response'; 794 $responseType = 'kt_response';
874 if ($this->version >= 2) 795 if ($this->version >= 2)
875 { 796 {
@@ -962,7 +883,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -962,7 +883,7 @@ class clientTools_service_list_361 extends clientTools_service {
962 883
963 function search($arr) 884 function search($arr)
964 { 885 {
965 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']); 886 + $kt = &$this->get$this->xlateapi($arr['session_id'], $arr['application']);
966 887
967 if (is_array($kt)) 888 if (is_array($kt))
968 { 889 {
@@ -977,11 +898,11 @@ class clientTools_service_list_361 extends clientTools_service { @@ -977,11 +898,11 @@ class clientTools_service_list_361 extends clientTools_service {
977 898
978 $result[] = array 899 $result[] = array
979 ( 900 (
980 - 'text' => _kt("No results found"), 901 + 'text' => $this->xlate("No results found"),
981 'id' => ($listing[$i]['item_type'] == 'F' ? $listing[$i]['item_type']."_" : "").$listing[$i]['id'], 902 'id' => ($listing[$i]['item_type'] == 'F' ? $listing[$i]['item_type']."_" : "").$listing[$i]['id'],
982 'leaf' => true, 903 'leaf' => true,
983 'relevance' => 0, 904 'relevance' => 0,
984 - 'qtip'=> _kt("Please retry your search") 905 + 'qtip'=> $this->xlate("Please retry your search")
985 ); 906 );
986 } else { 907 } else {
987 $result = array_slice($result, 0, 200); 908 $result = array_slice($result, 0, 200);
@@ -1026,7 +947,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1026,7 +947,7 @@ class clientTools_service_list_361 extends clientTools_service {
1026 $this->response= $update_result; 947 $this->response= $update_result;
1027 } 948 }
1028 949
1029 - $kt = &$this->get_ktapi($arr['session_id']); 950 + $kt = &$this->get$this->xlateapi($arr['session_id']);
1030 if (is_array($kt)) 951 if (is_array($kt))
1031 { 952 {
1032 $this->response= $kt; 953 $this->response= $kt;
@@ -1050,7 +971,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1050,7 +971,7 @@ class clientTools_service_list_361 extends clientTools_service {
1050 function check_document_title($arr) 971 function check_document_title($arr)
1051 { 972 {
1052 973
1053 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application'] ); 974 + $kt = &$this->get$this->xlateapi($arr['session_id'], $arr['application'] );
1054 975
1055 976
1056 if (is_array($kt)) 977 if (is_array($kt))
@@ -1079,7 +1000,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1079,7 +1000,7 @@ class clientTools_service_list_361 extends clientTools_service {
1079 { 1000 {
1080 //$this->debug("undo_document_checkout({$params['session_id']}, {$params['document_id']}, {$params['reason']})"); 1001 //$this->debug("undo_document_checkout({$params['session_id']}, {$params['document_id']}, {$params['reason']})");
1081 1002
1082 - $kt = &$this->get_ktapi($params['session_id'], $params['application'] ); 1003 + $kt = &$this->get$this->xlateapi($params['session_id'], $params['application'] );
1083 if (is_array($kt)) 1004 if (is_array($kt))
1084 { 1005 {
1085 $this->response= array('status_code' => 1); 1006 $this->response= array('status_code' => 1);
@@ -1104,7 +1025,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1104,7 +1025,7 @@ class clientTools_service_list_361 extends clientTools_service {
1104 1025
1105 function get_users_groups($params) 1026 function get_users_groups($params)
1106 { 1027 {
1107 - $kt = &$this->get_ktapi($params['session_id'],$params['application'] ); 1028 + $kt = &$this->get$this->xlateapi($params['session_id'],$params['application'] );
1108 if (is_array($kt)) 1029 if (is_array($kt))
1109 { 1030 {
1110 $this->response= array('status_code' => 1); 1031 $this->response= array('status_code' => 1);
@@ -1145,7 +1066,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1145,7 +1066,7 @@ class clientTools_service_list_361 extends clientTools_service {
1145 1066
1146 function send_email($params) 1067 function send_email($params)
1147 { 1068 {
1148 - $kt = &$this->get_ktapi($params['session_id'], $params['application'] ); 1069 + $kt = &$this->get$this->xlateapi($params['session_id'], $params['application'] );
1149 if (is_array($kt)) 1070 if (is_array($kt))
1150 { 1071 {
1151 $this->response= array('status_code' => 1); 1072 $this->response= array('status_code' => 1);
@@ -1212,7 +1133,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1212,7 +1133,7 @@ class clientTools_service_list_361 extends clientTools_service {
1212 1133
1213 function is_latest_version($params) 1134 function is_latest_version($params)
1214 { 1135 {
1215 - $kt = &$this->get_ktapi($params['session_id'], $params['application']); 1136 + $kt=&$this->KT;
1216 1137
1217 1138
1218 if (is_array($kt)) 1139 if (is_array($kt))
@@ -1231,7 +1152,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1231,7 +1152,7 @@ class clientTools_service_list_361 extends clientTools_service {
1231 1152
1232 function check_permission($params) 1153 function check_permission($params)
1233 { 1154 {
1234 - $kt = &$this->get_ktapi($params['session_id'], $params['application']); 1155 + $kt=&$this->KT;
1235 1156
1236 1157
1237 if (is_array($kt)) 1158 if (is_array($kt))
@@ -1260,7 +1181,7 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1260,7 +1181,7 @@ class clientTools_service_list_361 extends clientTools_service {
1260 1181
1261 function renamefolder($params) 1182 function renamefolder($params)
1262 { 1183 {
1263 - $kt = &$this->get_ktapi($params['session_id'], $params['application'] ); 1184 + $kt = &$this->get$this->xlateapi($params['session_id'], $params['application'] );
1264 if (is_array($kt)) 1185 if (is_array($kt))
1265 { 1186 {
1266 $this->response= array('status_code' => 1); 1187 $this->response= array('status_code' => 1);
@@ -1269,16 +1190,16 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1269,16 +1190,16 @@ class clientTools_service_list_361 extends clientTools_service {
1269 $response = $kt->rename_folder($params['currentfolderid'], $params['newname']); 1190 $response = $kt->rename_folder($params['currentfolderid'], $params['newname']);
1270 1191
1271 if ($response['status_code'] == 0) { 1192 if ($response['status_code'] == 0) {
1272 - $this->response= array('status_code' => 0, 'status'=>'folderupdated', 'icon'=>'success', 'title'=>_kt('Folder Renamed'), 'message'=>_kt('Folder has been successfully renamed')); 1193 + $this->response= array('status_code' => 0, 'status'=>'folderupdated', 'icon'=>'success', 'title'=>$this->xlate('Folder Renamed'), 'message'=>$this->xlate('Folder has been successfully renamed'));
1273 } else { 1194 } else {
1274 - $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>_kt('Unable to rename folder'), 'message'=>_kt('Unable to rename folder')); //$response['message'] 1195 + $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to rename folder'), 'message'=>$this->xlate('Unable to rename folder')); //$response['message']
1275 } 1196 }
1276 1197
1277 } 1198 }
1278 1199
1279 function addfolder($params) 1200 function addfolder($params)
1280 { 1201 {
1281 - $kt = &$this->get_ktapi($params['session_id'], $params['application'] ); 1202 + $kt = &$this->get$this->xlateapi($params['session_id'], $params['application'] );
1282 if (is_array($kt)) 1203 if (is_array($kt))
1283 { 1204 {
1284 $this->response= array('status_code' => 1); 1205 $this->response= array('status_code' => 1);
@@ -1288,16 +1209,16 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1288,16 +1209,16 @@ class clientTools_service_list_361 extends clientTools_service {
1288 $response = $kt->create_folder($params['currentfolderid'], $params['newname']); 1209 $response = $kt->create_folder($params['currentfolderid'], $params['newname']);
1289 1210
1290 if ($response['status_code'] == 0) { 1211 if ($response['status_code'] == 0) {
1291 - $this->response= array('status_code' => 0, 'status'=>'folderupdated', 'icon'=>'success', 'title'=>_kt('Folder Created'), 'message'=>_kt('Folder has been successfully created'), 'id' =>$response['results']['id']); //$params['newname']);// 1212 + $this->response= array('status_code' => 0, 'status'=>'folderupdated', 'icon'=>'success', 'title'=>$this->xlate('Folder Created'), 'message'=>$this->xlate('Folder has been successfully created'), 'id' =>$response['results']['id']); //$params['newname']);//
1292 } else { 1213 } else {
1293 - $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>_kt('Unable to create folder'), 'message'=>_kt('Unable to create folder')); //$response['message'] 1214 + $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to create folder'), 'message'=>$this->xlate('Unable to create folder')); //$response['message']
1294 } 1215 }
1295 1216
1296 } 1217 }
1297 1218
1298 function deletefolder($params) 1219 function deletefolder($params)
1299 { 1220 {
1300 - $kt = &$this->get_ktapi($params['session_id'], $params['application'] ); 1221 + $kt = &$this->get$this->xlateapi($params['session_id'], $params['application'] );
1301 if (is_array($kt)) 1222 if (is_array($kt))
1302 { 1223 {
1303 $this->response= array('status_code' => 1); 1224 $this->response= array('status_code' => 1);
@@ -1306,16 +1227,16 @@ class clientTools_service_list_361 extends clientTools_service { @@ -1306,16 +1227,16 @@ class clientTools_service_list_361 extends clientTools_service {
1306 $response = $kt->delete_folder($params['folderid'], 'Deleted from office addin'); 1227 $response = $kt->delete_folder($params['folderid'], 'Deleted from office addin');
1307 1228
1308 if ($response['status_code'] == 0) { 1229 if ($response['status_code'] == 0) {
1309 - $this->response= array('status_code' => 0, 'status'=>'folderdeleted', 'icon'=>'success', 'title'=>_kt('Folder Deleted'), 'message'=>_kt('Folder has been successfully deleted')); 1230 + $this->response= array('status_code' => 0, 'status'=>'folderdeleted', 'icon'=>'success', 'title'=>$this->xlate('Folder Deleted'), 'message'=>$this->xlate('Folder has been successfully deleted'));
1310 } else { 1231 } else {
1311 - $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>_kt('Unable to delete folder'), 'message'=>_kt('Unable to delete folder')); //$response['message'] 1232 + $this->response= array('status_code' => 1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to delete folder'), 'message'=>$this->xlate('Unable to delete folder')); //$response['message']
1312 } 1233 }
1313 1234
1314 } 1235 }
1315 1236
1316 function candeletefolder($arr) 1237 function candeletefolder($arr)
1317 { 1238 {
1318 - $kt = &$this->get_ktapi($arr['session_id'], $arr['application']); 1239 + $kt = &$this->get$this->xlateapi($arr['session_id'], $arr['application']);
1319 1240
1320 if (is_array($kt)) 1241 if (is_array($kt))
1321 { 1242 {
webservice/clienttools/services/3.6.1/server.service.php renamed to webservice/clienttools/services/3.6.1/server.php
1 <?php 1 <?php
2 -require_once(str_replace('/','\\',str_replace('//','/',dirname(__FILE__).'/')."../../clientTools_service.php"));  
3 -  
4 -class clientTools_service_server_361 extends clientTools_service{ 2 +class server extends client_service {
5 public function status(){ 3 public function status(){
6 4
7 } 5 }
  6 +
  7 + public function ping(){
  8 + $this->addResponse('pong',time());
  9 + }
8 10
9 public function getToken(){ 11 public function getToken(){
10 12
@@ -13,11 +15,8 @@ class clientTools_service_server_361 extends clientTools_service{ @@ -13,11 +15,8 @@ class clientTools_service_server_361 extends clientTools_service{
13 public function phpInfo(){ 15 public function phpInfo(){
14 ob_start(); 16 ob_start();
15 phpinfo(); 17 phpinfo();
16 - $this->response['phpinfo']=ob_get_clean(); 18 + $this->addResponse('phpinfo',ob_get_clean());
17 } 19 }
18 20
19 - public function getServiceObject(){  
20 - $this->response['serviceobject']=new clientTools_service_server_361(&$this->kt,&$this->session,&$this->session_id);  
21 - }  
22 } 21 }
23 ?> 22 ?>
24 \ No newline at end of file 23 \ No newline at end of file