diff --git a/webservice/clienttools/services/3.6.1/auth.php b/webservice/clienttools/services/3.6.1/auth.php index 15c8582..d9c4b65 100644 --- a/webservice/clienttools/services/3.6.1/auth.php +++ b/webservice/clienttools/services/3.6.1/auth.php @@ -20,13 +20,32 @@ class auth extends client_service { $kt =& $this->KT; if ($username != 'admin') { - require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php'); + //$this->addDebug('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',''); + if(!file_exists(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php')){ + $this->setResponse(array('authenticated'=> false, 'message'=> 'baobabkeyutil not found - this appears to be a community install.')); + $this->addError('baobabkeyutil not found - this appears to be a community install.'); + return; + } + try{ + require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php'); + + }catch(Exception $e){ + $this->addError('could not include plugins/wintools/baobabkeyutil.inc.php'); + $this->setResponse(array('authenticated'=> false, 'message'=> 'Baobab load error')); + return; + } - if (!BaobabKeyUtil::checkIfLicensed(true)) { - $this->setResponse(array('authenticated'=> false, 'message'=> 'license_expired')); - $this->addError('Licence Expired'); - return false; - } + try{ + if (!BaobabKeyUtil::checkIfLicensed(true)) { + $this->setResponse(array('authenticated'=> false, 'message'=> 'license_expired')); + $this->addError('Licence Expired'); + return false; + } + }catch(Exception $e){ + $this->addError('could not execute BaobabKeyUtil::checkIfLicensed'); + $this->setResponse(array('authenticated'=> false, 'message'=> 'BaobabKeyUtil::checkIfLicensed error')); + return; + } } $user=$kt->get_user_object_by_username($username); @@ -60,6 +79,7 @@ class auth extends client_service { public function japiLogin(){ global $default; + $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']); $ret=array( 'fullName' =>PEAR::isError($user)?'':$user->getName() diff --git a/webservice/clienttools/services/3.6.1/kt.php b/webservice/clienttools/services/3.6.1/kt.php index b93f28b..16716d7 100644 --- a/webservice/clienttools/services/3.6.1/kt.php +++ b/webservice/clienttools/services/3.6.1/kt.php @@ -434,7 +434,16 @@ class kt extends client_service { } - function download_document($params) { + /** + * Get a url for downloading the specified document + * Parameters: + * session_id + * app_type + * document_id + * + * @param unknown_type $params + */ + function download_document($params,$returnResult=false) { $kt=&$this->KT; $params['session_id']=$params['session_id']?$params['session_id']:$this->AuthInfo['session']; @@ -484,10 +493,37 @@ class kt extends client_service { $response['status_code']=0; $response['message']=$url.'&apptype='.$params['app_type']; $response['filename']=$docname; + $this->addDebug('effective params',$params); + + if($returnResult){ + return $response; + }else{ + $this->setResponse($response); + } + } + + /** + * Get download URLS for multiple documents + * params contains: + * app_type + * documents = array of doc_id + * + * @param unknown_type $params + */ + public function download_multiple_documents($params){ + $response=array(); + foreach($params['documents'] as $docId){ + $ret=$this->download_document(array('document_id'=>$docId,'app_type'=>$params['app_type']),true); + $rec=array( + 'filename' =>$ret['filename'], + 'url' =>$ret['message'], + 'succeeded' =>$ret['status_code']==0?true:false + ); + if(is_array($ret))$response[$docId]=$rec; + } $this->setResponse($response); } - /** * Checkout a Document @@ -982,7 +1018,11 @@ class kt extends client_service { $this->setResponse(array('status'=>'norecipients')); return false; }else{ - $document->email($recipientsList, $message, TRUE); // true to attach document + $result = $document->email($recipientsList, $message, TRUE); // true to attach document + if (PEAR::isError($result)) { + $this->setResponse(array('status'=>$result->getMessage()));; + return false; + } $this->setResponse(array('status'=>'documentemailed')); } return true;