Commit 2e773b596cdc028b4d53b0cf0a72cebe642fd559

Authored by conradverm
1 parent c2cd46b3

KTS-1694

"SOAP Webservice Implementation"
Updated. Initial modifications to cater for passing by reference under PHP4.

Reviewed By: Kevin Fourie

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6472 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 85 additions and 110 deletions
ktapi/ktapi.inc.php
@@ -75,15 +75,15 @@ class KTAPI_Session @@ -75,15 +75,15 @@ class KTAPI_Session
75 var $sessionid = -1; 75 var $sessionid = -1;
76 var $ip = null; 76 var $ip = null;
77 77
78 - function KTAPI_Session($ktapi, $user, $session, $sessionid, $ip) 78 + function KTAPI_Session(&$ktapi, &$user, $session, $sessionid, $ip)
79 { 79 {
80 assert(!is_null($ktapi)); 80 assert(!is_null($ktapi));
81 assert(is_a($ktapi,'KTAPI')); 81 assert(is_a($ktapi,'KTAPI'));
82 assert(!is_null($user)); 82 assert(!is_null($user));
83 assert(is_a($user,'User')); 83 assert(is_a($user,'User'));
84 84
85 - $this->ktapi = $ktapi;  
86 - $this->user = $user; 85 + $this->ktapi = &$ktapi;
  86 + $this->user = &$user;
87 $this->session = $session; 87 $this->session = $session;
88 $this->sessionid = $sessionid; 88 $this->sessionid = $sessionid;
89 $this->ip = $ip; 89 $this->ip = $ip;
@@ -116,9 +116,9 @@ class KTAPI_Session @@ -116,9 +116,9 @@ class KTAPI_Session
116 /** 116 /**
117 * This returns a user object for the use rassociated with the session. 117 * This returns a user object for the use rassociated with the session.
118 * 118 *
119 - * @return KTAPI_User 119 + * @return User
120 */ 120 */
121 - function get_user() 121 + function &get_user()
122 { 122 {
123 return $this->user; 123 return $this->user;
124 } 124 }
@@ -161,7 +161,7 @@ class KTAPI_Session @@ -161,7 +161,7 @@ class KTAPI_Session
161 * @param string $password 161 * @param string $password
162 * @return KTAPI_Session 162 * @return KTAPI_Session
163 */ 163 */
164 - function start_session($ktapi, $username, $password, $ip=null) 164 + function &start_session(&$ktapi, $username, $password, $ip=null)
165 { 165 {
166 166
167 if ( empty($username) ) 167 if ( empty($username) )
@@ -179,7 +179,7 @@ class KTAPI_Session @@ -179,7 +179,7 @@ class KTAPI_Session
179 { 179 {
180 $authenticated = true; 180 $authenticated = true;
181 181
182 - $config = KTConfig::getSingleton(); 182 + $config = &KTConfig::getSingleton();
183 $allow_anonymous = $config->get('session/allowAnonymousLogin', false); 183 $allow_anonymous = $config->get('session/allowAnonymousLogin', false);
184 184
185 if (!$allow_anonymous) 185 if (!$allow_anonymous)
@@ -245,7 +245,7 @@ class KTAPI_Session @@ -245,7 +245,7 @@ class KTAPI_Session
245 return $sessionid; 245 return $sessionid;
246 } 246 }
247 247
248 - $session = new KTAPI_Session($ktapi, $user, $session, $sessionid, $ip); 248 + $session = &new KTAPI_Session($ktapi, $user, $session, $sessionid, $ip);
249 249
250 return $session; 250 return $session;
251 } 251 }
@@ -256,9 +256,9 @@ class KTAPI_Session @@ -256,9 +256,9 @@ class KTAPI_Session
256 * @param KTAPI $ktapi 256 * @param KTAPI $ktapi
257 * @param string $session 257 * @param string $session
258 * @param string $ip 258 * @param string $ip
259 - * @return unknown 259 + * @return KTAPI_Session
260 */ 260 */
261 - function get_active_session($ktapi, $session, $ip) 261 + function &get_active_session(&$ktapi, $session, $ip)
262 { 262 {
263 $sql = "SELECT id, user_id FROM active_sessions WHERE session_id='$session'"; 263 $sql = "SELECT id, user_id FROM active_sessions WHERE session_id='$session'";
264 if (!empty($ip)) 264 if (!empty($ip))
@@ -275,7 +275,7 @@ class KTAPI_Session @@ -275,7 +275,7 @@ class KTAPI_Session
275 $sessionid = $row['id']; 275 $sessionid = $row['id'];
276 $userid = $row['user_id']; 276 $userid = $row['user_id'];
277 277
278 - $user = User::get($userid); 278 + $user = &User::get($userid);
279 if (is_null($user) || PEAR::isError($user)) 279 if (is_null($user) || PEAR::isError($user))
280 { 280 {
281 return new PEAR_Error(KTAPI_ERROR_USER_INVALID); 281 return new PEAR_Error(KTAPI_ERROR_USER_INVALID);
@@ -287,7 +287,7 @@ class KTAPI_Session @@ -287,7 +287,7 @@ class KTAPI_Session
287 $sql = "UPDATE active_sessions SET last_used='$now' WHERE id=$sessionid"; 287 $sql = "UPDATE active_sessions SET last_used='$now' WHERE id=$sessionid";
288 DBUtil::runQuery($sql); 288 DBUtil::runQuery($sql);
289 289
290 - $session = new KTAPI_Session($ktapi, $user, $session, $sessionid, $ip); 290 + $session = &new KTAPI_Session($ktapi, $user, $session, $sessionid, $ip);
291 return $session; 291 return $session;
292 } 292 }
293 293
@@ -322,11 +322,9 @@ class KTAPI_FolderItem @@ -322,11 +322,9 @@ class KTAPI_FolderItem
322 */ 322 */
323 var $ktapi; 323 var $ktapi;
324 324
325 - function can_user_access_object_requiring_permission($object, $permission)  
326 - {  
327 - $user = $this->ktapi->can_user_access_object_requiring_permission($object, $permission);  
328 -  
329 - return $user; 325 + function &can_user_access_object_requiring_permission(&$object, &$permission)
  326 + {
  327 + return $this->ktapi->can_user_access_object_requiring_permission($object, $permission);
330 } 328 }
331 } 329 }
332 330
@@ -357,7 +355,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -357,7 +355,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
357 * @param int $folderid 355 * @param int $folderid
358 * @return KTAPI_Folder 356 * @return KTAPI_Folder
359 */ 357 */
360 - function get($ktapi, $folderid) 358 + function &get(&$ktapi, $folderid)
361 { 359 {
362 assert(!is_null($ktapi)); 360 assert(!is_null($ktapi));
363 assert(is_a($ktapi, 'KTAPI')); 361 assert(is_a($ktapi, 'KTAPI'));
@@ -365,7 +363,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -365,7 +363,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
365 363
366 $folderid += 0; 364 $folderid += 0;
367 365
368 - $folder = Folder::get($folderid); 366 + $folder = &Folder::get($folderid);
369 if (is_null($folder) || PEAR::isError($folder)) 367 if (is_null($folder) || PEAR::isError($folder))
370 { 368 {
371 return new PEAR_Error(KTAPI_ERROR_FOLDER_INVALID); 369 return new PEAR_Error(KTAPI_ERROR_FOLDER_INVALID);
@@ -389,10 +387,10 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -389,10 +387,10 @@ class KTAPI_Folder extends KTAPI_FolderItem
389 * @param Folder $folder 387 * @param Folder $folder
390 * @return KTAPI_Folder 388 * @return KTAPI_Folder
391 */ 389 */
392 - function KTAPI_Folder($ktapi, $folder) 390 + function KTAPI_Folder(&$ktapi, &$folder)
393 { 391 {
394 - $this->ktapi = $ktapi;  
395 - $this->folder = $folder; 392 + $this->ktapi = &$ktapi;
  393 + $this->folder = &$folder;
396 $this->folderid = $folder->getId(); 394 $this->folderid = $folder->getId();
397 } 395 }
398 396
@@ -402,7 +400,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -402,7 +400,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
402 * @access protected 400 * @access protected
403 * @return Folder 401 * @return Folder
404 */ 402 */
405 - function get_folder() 403 + function &get_folder()
406 { 404 {
407 return $this->folder; 405 return $this->folder;
408 } 406 }
@@ -453,7 +451,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -453,7 +451,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
453 * @param string $foldername 451 * @param string $foldername
454 * @return KTAPI_Folder 452 * @return KTAPI_Folder
455 */ 453 */
456 - function get_folder_by_name($foldername) 454 + function &get_folder_by_name($foldername)
457 { 455 {
458 $foldername=trim($foldername); 456 $foldername=trim($foldername);
459 if (empty($foldername)) 457 if (empty($foldername))
@@ -482,8 +480,6 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -482,8 +480,6 @@ class KTAPI_Folder extends KTAPI_FolderItem
482 { 480 {
483 $path = $this->folder->getFullPath() . '/' . $this->folder->getName(); 481 $path = $this->folder->getFullPath() . '/' . $this->folder->getName();
484 482
485 -// $path = substr($path,11);  
486 -  
487 return $path; 483 return $path;
488 } 484 }
489 485
@@ -495,7 +491,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -495,7 +491,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
495 * @param string $function 491 * @param string $function
496 * @return KTAPI_Document 492 * @return KTAPI_Document
497 */ 493 */
498 - function _get_document_by_name($documentname, $function='getByNameAndFolder') 494 + function &_get_document_by_name($documentname, $function='getByNameAndFolder')
499 { 495 {
500 $documentname=trim($documentname); 496 $documentname=trim($documentname);
501 if (empty($documentname)) 497 if (empty($documentname))
@@ -532,10 +528,8 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -532,10 +528,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
532 { 528 {
533 return $user; 529 return $user;
534 } 530 }
535 -  
536 - $document = new KTAPI_Document($this->ktapi, $ktapi_folder, $document);  
537 -  
538 - return $document; 531 +
  532 + return new KTAPI_Document($this->ktapi, $ktapi_folder, $document);
539 } 533 }
540 534
541 /** 535 /**
@@ -545,7 +539,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -545,7 +539,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
545 * @param string $documentname 539 * @param string $documentname
546 * @return KTAPI_Document 540 * @return KTAPI_Document
547 */ 541 */
548 - function get_document_by_name($documentname) 542 + function &get_document_by_name($documentname)
549 { 543 {
550 return $this->_get_document_by_name($documentname,'getByNameAndFolder'); 544 return $this->_get_document_by_name($documentname,'getByNameAndFolder');
551 } 545 }
@@ -557,7 +551,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -557,7 +551,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
557 * @param string $documentname 551 * @param string $documentname
558 * @return KTAPI_Document 552 * @return KTAPI_Document
559 */ 553 */
560 - function get_document_by_filename($documentname) 554 + function &get_document_by_filename($documentname)
561 { 555 {
562 return $this->_get_document_by_name($documentname,'getByFilenameAndFolder'); 556 return $this->_get_document_by_name($documentname,'getByFilenameAndFolder');
563 } 557 }
@@ -568,7 +562,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -568,7 +562,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
568 { 562 {
569 return array(); 563 return array();
570 } 564 }
571 - $permission = KTPermission::getByName(KTAPI_PERMISSION_READ); 565 + $permission = &KTPermission::getByName(KTAPI_PERMISSION_READ);
572 $permissionid= $permission->getId(); 566 $permissionid= $permission->getId();
573 567
574 $user = $this->ktapi->get_user(); 568 $user = $this->ktapi->get_user();
@@ -651,22 +645,23 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -651,22 +645,23 @@ class KTAPI_Folder extends KTAPI_FolderItem
651 return new PEAR_Error(KTAPI_ERROR_INTERNAL_ERROR); 645 return new PEAR_Error(KTAPI_ERROR_INTERNAL_ERROR);
652 } 646 }
653 647
654 - foreach($contents as & $item) 648 + $num_items = count($contents);
  649 + for($i=0;$i<$num_items;$i++)
655 { 650 {
656 - if ($item['item_type'] == 'D') 651 + if ($contents[$i]['item_type'] == 'D')
657 { 652 {
658 - $item['items'] = array(); 653 + $contents[$i]['items'] = array();
659 } 654 }
660 else 655 else
661 { 656 {
662 if ($depth-1 > 0) 657 if ($depth-1 > 0)
663 { 658 {
664 - $folder = $this->ktapi->get_folder_by_id($item['id']);  
665 - $item['items'] = $folder->get_listing($depth-1); 659 + $folder = &$this->ktapi->get_folder_by_id($item['id']);
  660 + $contents[$i]['items'] = $folder->get_listing($depth-1);
666 } 661 }
667 else 662 else
668 { 663 {
669 - $item['items'] = array(); 664 + $contents[$i]['items'] = array();
670 } 665 }
671 } 666 }
672 } 667 }
@@ -684,7 +679,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -684,7 +679,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
684 * @param string $tempfilename This is a reference to the file that is accessible locally on the file system. 679 * @param string $tempfilename This is a reference to the file that is accessible locally on the file system.
685 * @return KTAPI_Document 680 * @return KTAPI_Document
686 */ 681 */
687 - function add_document($title, $filename, $documenttype, $tempfilename) 682 + function &add_document($title, $filename, $documenttype, $tempfilename)
688 { 683 {
689 if (!is_file($tempfilename)) 684 if (!is_file($tempfilename))
690 { 685 {
@@ -726,11 +721,8 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -726,11 +721,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
726 { 721 {
727 return $result; 722 return $result;
728 } 723 }
729 -  
730 -  
731 - $ktapi_document = new KTAPI_Document($this->ktapi, $this, $document);  
732 724
733 - return $ktapi_document; 725 + return new KTAPI_Document($this->ktapi, $this, $document);
734 } 726 }
735 727
736 /** 728 /**
@@ -740,7 +732,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -740,7 +732,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
740 * @param string $foldername 732 * @param string $foldername
741 * @return KTAPI_Folder 733 * @return KTAPI_Folder
742 */ 734 */
743 - function add_folder($foldername) 735 + function &add_folder($foldername)
744 { 736 {
745 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_ADD_FOLDER); 737 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_ADD_FOLDER);
746 738
@@ -751,7 +743,6 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -751,7 +743,6 @@ class KTAPI_Folder extends KTAPI_FolderItem
751 743
752 DBUtil::startTransaction(); 744 DBUtil::startTransaction();
753 $result = KTFolderUtil::add($this->folder, $foldername, $user); 745 $result = KTFolderUtil::add($this->folder, $foldername, $user);
754 -  
755 746
756 if (PEAR::isError($result)) 747 if (PEAR::isError($result))
757 { 748 {
@@ -760,10 +751,8 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -760,10 +751,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
760 } 751 }
761 DBUtil::commit(); 752 DBUtil::commit();
762 $folderid = $result->getId(); 753 $folderid = $result->getId();
763 -  
764 - $ktapi_folder = $this->ktapi->get_folder_by_id($folderid);  
765 754
766 - return $ktapi_folder; 755 + return $this->ktapi->get_folder_by_id($folderid);
767 } 756 }
768 757
769 /** 758 /**
@@ -775,7 +764,6 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -775,7 +764,6 @@ class KTAPI_Folder extends KTAPI_FolderItem
775 function delete($reason) 764 function delete($reason)
776 { 765 {
777 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_DELETE); 766 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_DELETE);
778 -  
779 if (PEAR::isError($user)) 767 if (PEAR::isError($user))
780 { 768 {
781 return $user; 769 return $user;
@@ -806,10 +794,8 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -806,10 +794,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
806 * @return true 794 * @return true
807 */ 795 */
808 function rename($newname) 796 function rename($newname)
809 - {  
810 - 797 + {
811 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_RENAME_FOLDER); 798 $user = $this->can_user_access_object_requiring_permission($this->folder, KTAPI_PERMISSION_RENAME_FOLDER);
812 -  
813 if (PEAR::isError($user)) 799 if (PEAR::isError($user))
814 { 800 {
815 return $user; 801 return $user;
@@ -920,9 +906,6 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -920,9 +906,6 @@ class KTAPI_Folder extends KTAPI_FolderItem
920 { 906 {
921 return new PEAR_Error('TODO'); 907 return new PEAR_Error('TODO');
922 } 908 }
923 -  
924 -  
925 -  
926 } 909 }
927 910
928 class KTAPI_Document extends KTAPI_FolderItem 911 class KTAPI_Document extends KTAPI_FolderItem
@@ -954,7 +937,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -954,7 +937,7 @@ class KTAPI_Document extends KTAPI_FolderItem
954 * @param int $documentid 937 * @param int $documentid
955 * @return KTAPI_Document 938 * @return KTAPI_Document
956 */ 939 */
957 - function get($ktapi, $documentid) 940 + function &get(&$ktapi, $documentid)
958 { 941 {
959 assert(!is_null($ktapi)); 942 assert(!is_null($ktapi));
960 assert(is_a($ktapi, 'KTAPI')); 943 assert(is_a($ktapi, 'KTAPI'));
@@ -962,7 +945,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -962,7 +945,7 @@ class KTAPI_Document extends KTAPI_FolderItem
962 945
963 $documentid += 0; 946 $documentid += 0;
964 947
965 - $document = Document::get($documentid); 948 + $document = &Document::get($documentid);
966 if (is_null($document) || PEAR::isError($document)) 949 if (is_null($document) || PEAR::isError($document))
967 { 950 {
968 return new PEAR_Error(KTAPI_ERROR_DOCUMENT_INVALID); 951 return new PEAR_Error(KTAPI_ERROR_DOCUMENT_INVALID);
@@ -977,7 +960,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -977,7 +960,7 @@ class KTAPI_Document extends KTAPI_FolderItem
977 960
978 $folderid = $document->getParentID(); 961 $folderid = $document->getParentID();
979 962
980 - $ktapi_folder = KTAPI_Folder::get($ktapi, $folderid); 963 + $ktapi_folder = &KTAPI_Folder::get($ktapi, $folderid);
981 // We don't do any checks on this folder as it could possibly be deleted, and is not required right now. 964 // We don't do any checks on this folder as it could possibly be deleted, and is not required right now.
982 965
983 return new KTAPI_Document($ktapi, $ktapi_folder, $document); 966 return new KTAPI_Document($ktapi, $ktapi_folder, $document);
@@ -991,14 +974,14 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -991,14 +974,14 @@ class KTAPI_Document extends KTAPI_FolderItem
991 * @param Document $document 974 * @param Document $document
992 * @return KTAPI_Document 975 * @return KTAPI_Document
993 */ 976 */
994 - function KTAPI_Document($ktapi, $ktapi_folder, $document) 977 + function KTAPI_Document(&$ktapi, &$ktapi_folder, &$document)
995 { 978 {
996 assert(is_a($ktapi,'KTAPI')); 979 assert(is_a($ktapi,'KTAPI'));
997 assert(is_a($ktapi_folder,'KTAPI_Folder')); 980 assert(is_a($ktapi_folder,'KTAPI_Folder'));
998 981
999 - $this->ktapi = $ktapi;  
1000 - $this->ktapi_folder = $ktapi_folder;  
1001 - $this->document = $document; 982 + $this->ktapi = &$ktapi;
  983 + $this->ktapi_folder = &$ktapi_folder;
  984 + $this->document = &$document;
1002 $this->documentid = $document->getId(); 985 $this->documentid = $document->getId();
1003 } 986 }
1004 987
@@ -1175,7 +1158,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1175,7 +1158,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1175 1158
1176 DBUtil::startTransaction(); 1159 DBUtil::startTransaction();
1177 1160
1178 - $user = User::getByUserName($newusername); 1161 + $user = &User::getByUserName($newusername);
1179 if (is_null($user) || PEAR::isError($user)) 1162 if (is_null($user) || PEAR::isError($user))
1180 { 1163 {
1181 return new PEAR_Error('User could not be found'); 1164 return new PEAR_Error('User could not be found');
@@ -1207,7 +1190,6 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1207,7 +1190,6 @@ class KTAPI_Document extends KTAPI_FolderItem
1207 DBUtil::rollback(); 1190 DBUtil::rollback();
1208 return new PEAR_Error(KTAPI_ERROR_INTERNAL_ERROR); 1191 return new PEAR_Error(KTAPI_ERROR_INTERNAL_ERROR);
1209 } 1192 }
1210 -  
1211 1193
1212 DBUtil::commit(); 1194 DBUtil::commit();
1213 return true; 1195 return true;
@@ -1222,7 +1204,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1222,7 +1204,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1222 * @param string $newfilename 1204 * @param string $newfilename
1223 * @return true 1205 * @return true
1224 */ 1206 */
1225 - function copy($ktapi_target_folder, $reason, $newname=null, $newfilename=null) 1207 + function copy(&$ktapi_target_folder, $reason, $newname=null, $newfilename=null)
1226 { 1208 {
1227 assert(!is_null($ktapi_target_folder)); 1209 assert(!is_null($ktapi_target_folder));
1228 assert(is_a($ktapi_target_folder,'KTAPI_Folder')); 1210 assert(is_a($ktapi_target_folder,'KTAPI_Folder'));
@@ -1244,7 +1226,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1244,7 +1226,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1244 return new PEAR_Error(KTAPI_ERROR_DOCUMENT_CHECKED_OUT); 1226 return new PEAR_Error(KTAPI_ERROR_DOCUMENT_CHECKED_OUT);
1245 } 1227 }
1246 1228
1247 - $target_folder = $ktapi_target_folder->get_folder(); 1229 + $target_folder = &$ktapi_target_folder->get_folder();
1248 1230
1249 $result = $this->can_user_access_object_requiring_permission( $target_folder, KTAPI_PERMISSION_WRITE); 1231 $result = $this->can_user_access_object_requiring_permission( $target_folder, KTAPI_PERMISSION_WRITE);
1250 1232
@@ -1327,7 +1309,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1327,7 +1309,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1327 * @param string $newfilename 1309 * @param string $newfilename
1328 * @return true 1310 * @return true
1329 */ 1311 */
1330 - function move($ktapi_target_folder, $reason, $newname=null, $newfilename=null) 1312 + function move(&$ktapi_target_folder, $reason, $newname=null, $newfilename=null)
1331 { 1313 {
1332 assert(!is_null($ktapi_target_folder)); 1314 assert(!is_null($ktapi_target_folder));
1333 assert(is_a($ktapi_target_folder,'KTAPI_Folder')); 1315 assert(is_a($ktapi_target_folder,'KTAPI_Folder'));
@@ -1650,14 +1632,12 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1650,14 +1632,12 @@ class KTAPI_Document extends KTAPI_FolderItem
1650 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS); 1632 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS);
1651 } 1633 }
1652 1634
1653 - $transition = KTWorkflowTransition::getByName($transition); 1635 + $transition = &KTWorkflowTransition::getByName($transition);
1654 if (is_null($transition) || PEAR::isError($transition)) 1636 if (is_null($transition) || PEAR::isError($transition))
1655 { 1637 {
1656 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_INVALID); 1638 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_INVALID);
1657 } 1639 }
1658 -  
1659 - list($permission, $user) = $perm_and_user;  
1660 - 1640 +
1661 DBUtil::startTransaction(); 1641 DBUtil::startTransaction();
1662 $result = KTWorkflowUtil::performTransitionOnDocument($transition, $this->document, $user, $reason); 1642 $result = KTWorkflowUtil::performTransitionOnDocument($transition, $this->document, $user, $reason);
1663 if (is_null($result) || PEAR::isError($result)) 1643 if (is_null($result) || PEAR::isError($result))
@@ -1818,9 +1798,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1818,9 +1798,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1818 { 1798 {
1819 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS); 1799 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS);
1820 } 1800 }
1821 -  
1822 - list($permission, $user) = $perm_and_user;  
1823 - 1801 +
1824 $result = array(); 1802 $result = array();
1825 1803
1826 $transitions = KTWorkflowUtil::getTransitionsForDocumentUser($this->document, $user); 1804 $transitions = KTWorkflowUtil::getTransitionsForDocumentUser($this->document, $user);
@@ -1856,8 +1834,6 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1856,8 +1834,6 @@ class KTAPI_Document extends KTAPI_FolderItem
1856 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS); 1834 return new PEAR_Error(KTAPI_ERROR_WORKFLOW_NOT_IN_PROGRESS);
1857 } 1835 }
1858 1836
1859 - list($permission, $user) = $perm_and_user;  
1860 -  
1861 $result = array(); 1837 $result = array();
1862 1838
1863 $state = KTWorkflowUtil::getWorkflowStateForDocument($this->document); 1839 $state = KTWorkflowUtil::getWorkflowStateForDocument($this->document);
@@ -1967,8 +1943,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1967,8 +1943,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1967 function download($version=null) 1943 function download($version=null)
1968 { 1944 {
1969 $storage =& KTStorageManagerUtil::getSingleton(); 1945 $storage =& KTStorageManagerUtil::getSingleton();
1970 - $options = array();  
1971 - 1946 + $options = array();
1972 1947
1973 1948
1974 $oDocumentTransaction = & new DocumentTransaction($this->document, 'Document downloaded', 'ktcore.transactions.download', $aOptions); 1949 $oDocumentTransaction = & new DocumentTransaction($this->document, 'Document downloaded', 'ktcore.transactions.download', $aOptions);
@@ -2011,7 +1986,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -2011,7 +1986,7 @@ class KTAPI_Document extends KTAPI_FolderItem
2011 $versions = array(); 1986 $versions = array();
2012 foreach ($metadata_versions as $version) 1987 foreach ($metadata_versions as $version)
2013 { 1988 {
2014 - $document = Document::get($this->documentid, $version->getId()); 1989 + $document = &Document::get($this->documentid, $version->getId());
2015 1990
2016 $version = array(); 1991 $version = array();
2017 1992
@@ -2111,7 +2086,7 @@ class KTAPI @@ -2111,7 +2086,7 @@ class KTAPI
2111 * @access public 2086 * @access public
2112 * @return KTAPI_Session 2087 * @return KTAPI_Session
2113 */ 2088 */
2114 - function get_session() 2089 + function &get_session()
2115 { 2090 {
2116 return $this->session; 2091 return $this->session;
2117 } 2092 }
@@ -2122,7 +2097,7 @@ class KTAPI @@ -2122,7 +2097,7 @@ class KTAPI
2122 * @access public 2097 * @access public
2123 * @return User 2098 * @return User
2124 */ 2099 */
2125 - function get_user() 2100 + function & get_user()
2126 { 2101 {
2127 $ktapi_session = $this->get_session(); 2102 $ktapi_session = $this->get_session();
2128 if (is_null($ktapi_session) || PEAR::isError($ktapi_session)) 2103 if (is_null($ktapi_session) || PEAR::isError($ktapi_session))
@@ -2146,9 +2121,9 @@ class KTAPI @@ -2146,9 +2121,9 @@ class KTAPI
2146 * @param string $permission 2121 * @param string $permission
2147 * @return KTPermission 2122 * @return KTPermission
2148 */ 2123 */
2149 - function get_permission($permission) 2124 + function &get_permission($permission)
2150 { 2125 {
2151 - $permission = KTPermission::getByName($permission); 2126 + $permission = & KTPermission::getByName($permission);
2152 if (is_null($permission) || PEAR::isError($permission)) 2127 if (is_null($permission) || PEAR::isError($permission))
2153 { 2128 {
2154 return new PEAR_Error(KTAPI_ERROR_PERMISSION_INVALID); 2129 return new PEAR_Error(KTAPI_ERROR_PERMISSION_INVALID);
@@ -2165,18 +2140,18 @@ class KTAPI @@ -2165,18 +2140,18 @@ class KTAPI
2165 * @param string $permission 2140 * @param string $permission
2166 * @return User 2141 * @return User
2167 */ 2142 */
2168 - function can_user_access_object_requiring_permission($object, $permission) 2143 + function can_user_access_object_requiring_permission(&$object, &$permission)
2169 { 2144 {
2170 assert(!is_null($object)); 2145 assert(!is_null($object));
2171 assert(is_a($object,'DocumentProxy') || is_a($object,'FolderProxy') || is_a($object,'Document') || is_a($object,'Folder')); 2146 assert(is_a($object,'DocumentProxy') || is_a($object,'FolderProxy') || is_a($object,'Document') || is_a($object,'Folder'));
2172 2147
2173 - $permission = KTAPI::get_permission($permission); 2148 + $permission = &KTAPI::get_permission($permission);
2174 if (is_null($permission) || PEAR::isError($permission)) 2149 if (is_null($permission) || PEAR::isError($permission))
2175 { 2150 {
2176 return $permission; 2151 return $permission;
2177 } 2152 }
2178 2153
2179 - $user = KTAPI::get_user(); 2154 + $user = &KTAPI::get_user();
2180 if (is_null($user) || PEAR::isError($user)) 2155 if (is_null($user) || PEAR::isError($user))
2181 { 2156 {
2182 return $user; 2157 return $user;
@@ -2204,14 +2179,14 @@ class KTAPI @@ -2204,14 +2179,14 @@ class KTAPI
2204 return new PEAR_Error('A session is currently active.'); 2179 return new PEAR_Error('A session is currently active.');
2205 } 2180 }
2206 2181
2207 - $session = KTAPI_Session::get_active_session($this, $session, $ip); 2182 + $session = &KTAPI_Session::get_active_session($this, $session, $ip);
2208 2183
2209 if (is_null($session) || PEAR::isError($session)) 2184 if (is_null($session) || PEAR::isError($session))
2210 { 2185 {
2211 return new PEAR_Error('Session is invalid'); 2186 return new PEAR_Error('Session is invalid');
2212 } 2187 }
2213 2188
2214 - $this->session = $session; 2189 + $this->session = &$session;
2215 return $session; 2190 return $session;
2216 } 2191 }
2217 2192
@@ -2230,17 +2205,23 @@ class KTAPI @@ -2230,17 +2205,23 @@ class KTAPI
2230 return new PEAR_Error('A session is currently active.'); 2205 return new PEAR_Error('A session is currently active.');
2231 } 2206 }
2232 2207
2233 - $session = KTAPI_Session::start_session($this, $username, $password, $ip); 2208 + $session = &KTAPI_Session::start_session($this, $username, $password, $ip);
2234 if (is_null($session) || PEAR::isError($session)) 2209 if (is_null($session) || PEAR::isError($session))
2235 { 2210 {
2236 return new PEAR_Error('Session is invalid'); 2211 return new PEAR_Error('Session is invalid');
2237 } 2212 }
2238 - $this->session = $session; 2213 + $this->session = &$session;
2239 2214
2240 return $session; 2215 return $session;
2241 } 2216 }
2242 2217
2243 - function start_anonymous_session($ip=null) 2218 + /**
  2219 + * Starts an anonymous session.
  2220 + *
  2221 + * @param string $ip
  2222 + * @return KTAPI_Session
  2223 + */
  2224 + function &start_anonymous_session($ip=null)
2244 { 2225 {
2245 return $this->start_session('anonymous','',$ip); 2226 return $this->start_session('anonymous','',$ip);
2246 } 2227 }
@@ -2252,7 +2233,7 @@ class KTAPI @@ -2252,7 +2233,7 @@ class KTAPI
2252 * @access public 2233 * @access public
2253 * @return KTAPI_Folder 2234 * @return KTAPI_Folder
2254 */ 2235 */
2255 - function get_root_folder() 2236 + function &get_root_folder()
2256 { 2237 {
2257 return $this->get_folder_by_id(1); 2238 return $this->get_folder_by_id(1);
2258 } 2239 }
@@ -2264,16 +2245,14 @@ class KTAPI @@ -2264,16 +2245,14 @@ class KTAPI
2264 * @param int $folderid 2245 * @param int $folderid
2265 * @return KTAPI_Folder 2246 * @return KTAPI_Folder
2266 */ 2247 */
2267 - function get_folder_by_id($folderid) 2248 + function &get_folder_by_id($folderid)
2268 { 2249 {
2269 if (is_null($this->session)) 2250 if (is_null($this->session))
2270 { 2251 {
2271 return new PEAR_Error('A session is not active'); 2252 return new PEAR_Error('A session is not active');
2272 } 2253 }
2273 -  
2274 - $folder = KTAPI_Folder::get($this, $folderid);  
2275 2254
2276 - return $folder; 2255 + return KTAPI_Folder::get($this, $folderid);
2277 } 2256 }
2278 2257
2279 /** 2258 /**
@@ -2283,11 +2262,9 @@ class KTAPI @@ -2283,11 +2262,9 @@ class KTAPI
2283 * @param int $documentid 2262 * @param int $documentid
2284 * @return KTAPI_Document 2263 * @return KTAPI_Document
2285 */ 2264 */
2286 - function get_document_by_id($documentid)  
2287 - {  
2288 - $document = KTAPI_Document::get($this, $documentid);  
2289 -  
2290 - return $document; 2265 + function &get_document_by_id($documentid)
  2266 + {
  2267 + return KTAPI_Document::get($this, $documentid);
2291 } 2268 }
2292 2269
2293 /** 2270 /**
@@ -2459,7 +2436,7 @@ class KTIndexingManager @@ -2459,7 +2436,7 @@ class KTIndexingManager
2459 */ 2436 */
2460 function start_indexing() 2437 function start_indexing()
2461 { 2438 {
2462 - throw new PEAR_Error('TODO'); 2439 + return new PEAR_Error('TODO');
2463 } 2440 }
2464 2441
2465 /** 2442 /**
@@ -2470,7 +2447,7 @@ class KTIndexingManager @@ -2470,7 +2447,7 @@ class KTIndexingManager
2470 */ 2447 */
2471 function process_file() 2448 function process_file()
2472 { 2449 {
2473 - throw new PEAR_Error('TODO'); 2450 + return new PEAR_Error('TODO');
2474 } 2451 }
2475 2452
2476 /** 2453 /**
@@ -2481,7 +2458,7 @@ class KTIndexingManager @@ -2481,7 +2458,7 @@ class KTIndexingManager
2481 */ 2458 */
2482 function report_pending_indexing() 2459 function report_pending_indexing()
2483 { 2460 {
2484 - throw new PEAR_Error('TODO'); 2461 + return new PEAR_Error('TODO');
2485 } 2462 }
2486 2463
2487 /** 2464 /**
@@ -2498,10 +2475,8 @@ class KTIndexingManager @@ -2498,10 +2475,8 @@ class KTIndexingManager
2498 } 2475 }
2499 2476
2500 2477
2501 - throw new PEAR_Error('TODO');  
2502 - }  
2503 -  
2504 - 2478 + return new PEAR_Error('TODO');
  2479 + }
2505 } 2480 }
2506 2481
2507 2482