Commit 2e773b596cdc028b4d53b0cf0a72cebe642fd559
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 |