Commit ae4087417b5ced6a63117aa4769534315272cbe3

Authored by conradverm
1 parent 05640152

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@6475 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 247 additions and 119 deletions
ktwebservice/webservice.php
@@ -77,7 +77,7 @@ class KTWebService @@ -77,7 +77,7 @@ class KTWebService
77 { 77 {
78 // Caching was giving some problems, so disable it. 78 // Caching was giving some problems, so disable it.
79 79
80 - $config = KTConfig::getSingleton(); 80 + $config = &KTConfig::getSingleton();
81 $cache_enabled = $config->get('cache/cacheEnabled'); 81 $cache_enabled = $config->get('cache/cacheEnabled');
82 if ($cache_enabled) 82 if ($cache_enabled)
83 { 83 {
@@ -513,9 +513,9 @@ class KTWebService @@ -513,9 +513,9 @@ class KTWebService
513 * @param string $session_id 513 * @param string $session_id
514 * @return KTAPI This could be KTAPI or kt_response array with status_code of KTWS_ERR_INVALID_SESSION. 514 * @return KTAPI This could be KTAPI or kt_response array with status_code of KTWS_ERR_INVALID_SESSION.
515 */ 515 */
516 - function get_ktapi($session_id) 516 + function &get_ktapi($session_id)
517 { 517 {
518 - $kt = new KTAPI(); 518 + $kt = &new KTAPI();
519 519
520 $session = $kt->get_active_session($session_id, null); 520 $session = $kt->get_active_session($session_id, null);
521 521
@@ -546,7 +546,7 @@ class KTWebService @@ -546,7 +546,7 @@ class KTWebService
546 'message'=>'', 546 'message'=>'',
547 ); 547 );
548 548
549 - $kt = new KTAPI(); 549 + $kt = &new KTAPI();
550 550
551 $session = $kt->start_session($username,$password, $ip); 551 $session = $kt->start_session($username,$password, $ip);
552 552
@@ -570,7 +570,7 @@ class KTWebService @@ -570,7 +570,7 @@ class KTWebService
570 */ 570 */
571 function logout($session_id) 571 function logout($session_id)
572 { 572 {
573 - $kt = $this->get_ktapi($session_id); 573 + $kt = &$this->get_ktapi($session_id);
574 if (is_array($kt)) 574 if (is_array($kt))
575 { 575 {
576 return $kt; 576 return $kt;
@@ -581,7 +581,7 @@ class KTWebService @@ -581,7 +581,7 @@ class KTWebService
581 'message'=>'' 581 'message'=>''
582 ); 582 );
583 583
584 - $session = $kt->get_session(); 584 + $session = &$kt->get_session();
585 if (PEAR::isError($session)) 585 if (PEAR::isError($session))
586 { 586 {
587 $response['message'] = $session->getMessage(); 587 $response['message'] = $session->getMessage();
@@ -603,13 +603,13 @@ class KTWebService @@ -603,13 +603,13 @@ class KTWebService
603 */ 603 */
604 function get_folder_detail($session_id, $folder_id) 604 function get_folder_detail($session_id, $folder_id)
605 { 605 {
606 - $kt = $this->get_ktapi($session_id); 606 + $kt = &$this->get_ktapi($session_id);
607 if (is_array($kt)) 607 if (is_array($kt))
608 { 608 {
609 return $kt; 609 return $kt;
610 } 610 }
611 611
612 - $folder = $kt->get_folder_by_id($folder_id); 612 + $folder = &$kt->get_folder_by_id($folder_id);
613 if (PEAR::isError($folder)) 613 if (PEAR::isError($folder))
614 { 614 {
615 $response=array( 615 $response=array(
@@ -635,13 +635,13 @@ class KTWebService @@ -635,13 +635,13 @@ class KTWebService
635 */ 635 */
636 function get_folder_detail_by_name($session_id, $folder_name) 636 function get_folder_detail_by_name($session_id, $folder_name)
637 { 637 {
638 - $kt = $this->get_ktapi($session_id); 638 + $kt = &$this->get_ktapi($session_id);
639 if (is_array($kt)) 639 if (is_array($kt))
640 { 640 {
641 return $kt; 641 return $kt;
642 } 642 }
643 643
644 - $root = $kt->get_root_folder(); 644 + $root = &$kt->get_root_folder();
645 if (PEAR::isError($root)) 645 if (PEAR::isError($root))
646 { 646 {
647 $response=array( 647 $response=array(
@@ -651,7 +651,7 @@ class KTWebService @@ -651,7 +651,7 @@ class KTWebService
651 return $response; 651 return $response;
652 } 652 }
653 653
654 - $folder = $root->get_folder_by_name($folder_name); 654 + $folder = &$root->get_folder_by_name($folder_name);
655 if (PEAR::isError($folder)) 655 if (PEAR::isError($folder))
656 { 656 {
657 $response=array( 657 $response=array(
@@ -679,13 +679,13 @@ class KTWebService @@ -679,13 +679,13 @@ class KTWebService
679 */ 679 */
680 function get_folder_contents($session_id, $folder_id, $depth=1, $what='DF') 680 function get_folder_contents($session_id, $folder_id, $depth=1, $what='DF')
681 { 681 {
682 - $kt = $this->get_ktapi($session_id); 682 + $kt = &$this->get_ktapi($session_id);
683 if (is_array($kt)) 683 if (is_array($kt))
684 { 684 {
685 return $kt; 685 return $kt;
686 } 686 }
687 687
688 - $folder = $kt->get_folder_by_id($folder_id); 688 + $folder = &$kt->get_folder_by_id($folder_id);
689 if (PEAR::isError($folder)) 689 if (PEAR::isError($folder))
690 { 690 {
691 $response=array( 691 $response=array(
@@ -719,13 +719,13 @@ class KTWebService @@ -719,13 +719,13 @@ class KTWebService
719 */ 719 */
720 function create_folder($session_id, $folder_id, $folder_name) 720 function create_folder($session_id, $folder_id, $folder_name)
721 { 721 {
722 - $kt = $this->get_ktapi($session_id ); 722 + $kt = &$this->get_ktapi($session_id );
723 if (is_array($kt)) 723 if (is_array($kt))
724 { 724 {
725 return $kt; 725 return $kt;
726 } 726 }
727 727
728 - $folder = $kt->get_folder_by_id($folder_id); 728 + $folder = &$kt->get_folder_by_id($folder_id);
729 if (PEAR::isError($folder)) 729 if (PEAR::isError($folder))
730 { 730 {
731 $response=array( 731 $response=array(
@@ -735,7 +735,7 @@ class KTWebService @@ -735,7 +735,7 @@ class KTWebService
735 return $response; 735 return $response;
736 } 736 }
737 737
738 - $newfolder = $folder->add_folder($folder_name); 738 + $newfolder = &$folder->add_folder($folder_name);
739 if (PEAR::isError($newfolder)) 739 if (PEAR::isError($newfolder))
740 { 740 {
741 $response=array( 741 $response=array(
@@ -762,7 +762,7 @@ class KTWebService @@ -762,7 +762,7 @@ class KTWebService
762 */ 762 */
763 function delete_folder($session_id, $folder_id, $reason) 763 function delete_folder($session_id, $folder_id, $reason)
764 { 764 {
765 - $kt = $this->get_ktapi($session_id ); 765 + $kt = &$this->get_ktapi($session_id );
766 if (is_array($kt)) 766 if (is_array($kt))
767 { 767 {
768 return $kt; 768 return $kt;
@@ -773,7 +773,7 @@ class KTWebService @@ -773,7 +773,7 @@ class KTWebService
773 'message'=>'' 773 'message'=>''
774 ); 774 );
775 775
776 - $folder = $kt->get_folder_by_id($folder_id); 776 + $folder = &$kt->get_folder_by_id($folder_id);
777 if (PEAR::isError($folder)) 777 if (PEAR::isError($folder))
778 { 778 {
779 $response['message'] = $folder->getMessage(); 779 $response['message'] = $folder->getMessage();
@@ -785,6 +785,7 @@ class KTWebService @@ -785,6 +785,7 @@ class KTWebService
785 { 785 {
786 $response['status_code'] = KTWS_ERR_PROBLEM; 786 $response['status_code'] = KTWS_ERR_PROBLEM;
787 $response['message'] = $result->getMessage(); 787 $response['message'] = $result->getMessage();
  788 + return $response;
788 } 789 }
789 790
790 $response['status_code'] = KTWS_SUCCESS; 791 $response['status_code'] = KTWS_SUCCESS;
@@ -801,7 +802,7 @@ class KTWebService @@ -801,7 +802,7 @@ class KTWebService
801 */ 802 */
802 function rename_folder($session_id, $folder_id, $newname) 803 function rename_folder($session_id, $folder_id, $newname)
803 { 804 {
804 - $kt = $this->get_ktapi($session_id ); 805 + $kt = &$this->get_ktapi($session_id );
805 if (is_array($kt)) 806 if (is_array($kt))
806 { 807 {
807 return $kt; 808 return $kt;
@@ -812,7 +813,7 @@ class KTWebService @@ -812,7 +813,7 @@ class KTWebService
812 'message'=>'' 813 'message'=>''
813 ); 814 );
814 815
815 - $folder = $kt->get_folder_by_id($folder_id); 816 + $folder = &$kt->get_folder_by_id($folder_id);
816 if (PEAR::isError($folder)) 817 if (PEAR::isError($folder))
817 { 818 {
818 $response['message']= $folder->getMessage(); 819 $response['message']= $folder->getMessage();
@@ -825,6 +826,7 @@ class KTWebService @@ -825,6 +826,7 @@ class KTWebService
825 { 826 {
826 $response['status_code'] = KTWS_ERR_PROBLEM; 827 $response['status_code'] = KTWS_ERR_PROBLEM;
827 $response['message'] = $result->getMessage(); 828 $response['message'] = $result->getMessage();
  829 + return $response;
828 } 830 }
829 831
830 $response['status_code']= KTWS_SUCCESS; 832 $response['status_code']= KTWS_SUCCESS;
@@ -843,7 +845,7 @@ class KTWebService @@ -843,7 +845,7 @@ class KTWebService
843 */ 845 */
844 function copy_folder($session_id, $source_id, $target_id, $reason) 846 function copy_folder($session_id, $source_id, $target_id, $reason)
845 { 847 {
846 - $kt = $this->get_ktapi($session_id ); 848 + $kt = &$this->get_ktapi($session_id );
847 if (is_array($kt)) 849 if (is_array($kt))
848 { 850 {
849 return $kt; 851 return $kt;
@@ -859,14 +861,14 @@ class KTWebService @@ -859,14 +861,14 @@ class KTWebService
859 return $response; 861 return $response;
860 /* REMOVE TILL HERE */ 862 /* REMOVE TILL HERE */
861 863
862 - $src_folder = $kt->get_folder_by_id($source_id); 864 + $src_folder = &$kt->get_folder_by_id($source_id);
863 if (PEAR::isError($src_folder)) 865 if (PEAR::isError($src_folder))
864 { 866 {
865 $response['message'] = $src_folder->getMessage(); 867 $response['message'] = $src_folder->getMessage();
866 return $response; 868 return $response;
867 } 869 }
868 870
869 - $tgt_folder = $kt->get_folder_by_id($target_id); 871 + $tgt_folder = &$kt->get_folder_by_id($target_id);
870 if (PEAR::isError($tgt_folder)) 872 if (PEAR::isError($tgt_folder))
871 { 873 {
872 $response['message'] = $tgt_folder->getMessage(); 874 $response['message'] = $tgt_folder->getMessage();
@@ -878,9 +880,9 @@ class KTWebService @@ -878,9 +880,9 @@ class KTWebService
878 { 880 {
879 $response['status_code'] = KTWS_ERR_PROBLEM; 881 $response['status_code'] = KTWS_ERR_PROBLEM;
880 $response['message'] = $result->getMessage(); 882 $response['message'] = $result->getMessage();
  883 + return $response;
881 } 884 }
882 885
883 -  
884 $response['status_code']= KTWS_SUCCESS; 886 $response['status_code']= KTWS_SUCCESS;
885 887
886 return $response; 888 return $response;
@@ -897,7 +899,7 @@ class KTWebService @@ -897,7 +899,7 @@ class KTWebService
897 */ 899 */
898 function move_folder($session_id, $source_id, $target_id, $reason) 900 function move_folder($session_id, $source_id, $target_id, $reason)
899 { 901 {
900 - $kt = $this->get_ktapi($session_id ); 902 + $kt = &$this->get_ktapi($session_id );
901 if (is_array($kt)) 903 if (is_array($kt))
902 { 904 {
903 return $kt; 905 return $kt;
@@ -913,14 +915,14 @@ class KTWebService @@ -913,14 +915,14 @@ class KTWebService
913 return $response; 915 return $response;
914 /* REMOVE TILL HERE */ 916 /* REMOVE TILL HERE */
915 917
916 - $src_folder = $kt->get_folder_by_id($source_id); 918 + $src_folder = &$kt->get_folder_by_id($source_id);
917 if (PEAR::isError($src_folder)) 919 if (PEAR::isError($src_folder))
918 { 920 {
919 $response['message'] = $src_folder->getMessage(); 921 $response['message'] = $src_folder->getMessage();
920 return $response; 922 return $response;
921 } 923 }
922 924
923 - $tgt_folder = $kt->get_folder_by_id($target_id); 925 + $tgt_folder = &$kt->get_folder_by_id($target_id);
924 if (PEAR::isError($tgt_folder)) 926 if (PEAR::isError($tgt_folder))
925 { 927 {
926 $response['message'] = $tgt_folder->getMessage(); 928 $response['message'] = $tgt_folder->getMessage();
@@ -932,6 +934,7 @@ class KTWebService @@ -932,6 +934,7 @@ class KTWebService
932 { 934 {
933 $response['status_code'] = KTWS_ERR_PROBLEM; 935 $response['status_code'] = KTWS_ERR_PROBLEM;
934 $response['message'] = $result->getMessage(); 936 $response['message'] = $result->getMessage();
  937 + return $response;
935 } 938 }
936 939
937 $response['status_code']= KTWS_SUCCESS; 940 $response['status_code']= KTWS_SUCCESS;
@@ -947,7 +950,7 @@ class KTWebService @@ -947,7 +950,7 @@ class KTWebService
947 */ 950 */
948 function get_document_types($session_id) 951 function get_document_types($session_id)
949 { 952 {
950 - $kt = $this->get_ktapi($session_id ); 953 + $kt = &$this->get_ktapi($session_id );
951 if (is_array($kt)) 954 if (is_array($kt))
952 { 955 {
953 return $kt; 956 return $kt;
@@ -981,7 +984,7 @@ class KTWebService @@ -981,7 +984,7 @@ class KTWebService
981 */ 984 */
982 function get_document_detail($session_id, $document_id) 985 function get_document_detail($session_id, $document_id)
983 { 986 {
984 - $kt = $this->get_ktapi($session_id ); 987 + $kt = &$this->get_ktapi($session_id );
985 if (is_array($kt)) 988 if (is_array($kt))
986 { 989 {
987 return $kt; 990 return $kt;
@@ -1002,6 +1005,7 @@ class KTWebService @@ -1002,6 +1005,7 @@ class KTWebService
1002 { 1005 {
1003 $response['status_code'] = KTWS_ERR_PROBLEM; 1006 $response['status_code'] = KTWS_ERR_PROBLEM;
1004 $response['message'] = $detail->getMessage(); 1007 $response['message'] = $detail->getMessage();
  1008 + return $response;
1005 } 1009 }
1006 1010
1007 $detail['status_code']=KTWS_SUCCESS; 1011 $detail['status_code']=KTWS_SUCCESS;
@@ -1033,16 +1037,17 @@ class KTWebService @@ -1033,16 +1037,17 @@ class KTWebService
1033 { 1037 {
1034 $response['status_code'] = KTWS_ERR_PROBLEM; 1038 $response['status_code'] = KTWS_ERR_PROBLEM;
1035 $response['message'] = 'Invalid what code'; 1039 $response['message'] = 'Invalid what code';
  1040 + return $response;
1036 } 1041 }
1037 1042
1038 1043
1039 - $kt = $this->get_ktapi($session_id ); 1044 + $kt = &$this->get_ktapi($session_id );
1040 if (is_array($kt)) 1045 if (is_array($kt))
1041 { 1046 {
1042 return $kt; 1047 return $kt;
1043 } 1048 }
1044 1049
1045 - $root = $kt->get_root_folder(); 1050 + $root = &$kt->get_root_folder();
1046 if (PEAR::isError($root)) 1051 if (PEAR::isError($root))
1047 { 1052 {
1048 1053
@@ -1051,11 +1056,11 @@ class KTWebService @@ -1051,11 +1056,11 @@ class KTWebService
1051 1056
1052 if ($what == 'T') 1057 if ($what == 'T')
1053 { 1058 {
1054 - $document = $root->get_document_by_name($document_name); 1059 + $document = &$root->get_document_by_name($document_name);
1055 } 1060 }
1056 else 1061 else
1057 { 1062 {
1058 - $document = $root->get_document_by_filename($document_name); 1063 + $document = &$root->get_document_by_filename($document_name);
1059 } 1064 }
1060 if (PEAR::isError($document)) 1065 if (PEAR::isError($document))
1061 { 1066 {
@@ -1093,13 +1098,25 @@ class KTWebService @@ -1093,13 +1098,25 @@ class KTWebService
1093 */ 1098 */
1094 function add_document($session_id, $folder_id, $title, $filename, $documenttype, $tempfilename) 1099 function add_document($session_id, $folder_id, $title, $filename, $documenttype, $tempfilename)
1095 { 1100 {
1096 - $kt = $this->get_ktapi($session_id ); 1101 + $kt = &$this->get_ktapi($session_id );
1097 if (is_array($kt)) 1102 if (is_array($kt))
1098 { 1103 {
1099 return $kt; 1104 return $kt;
1100 } 1105 }
  1106 +
  1107 + // we need to add some security to ensure that people don't frig the checkin process to access restricted files.
  1108 + // possibly should change 'tempfilename' to be a hash or id of some sort if this is troublesome.
  1109 + $upload_manager = new KTUploadManager();
  1110 + if (substr($tempfilename,0,length($upload_manager->temp_dir)) != $upload_manager->temp_dir)
  1111 + {
  1112 + $response=array(
  1113 + 'status_code'=>KTWS_ERR_INVALID_FOLDER,
  1114 + 'message'=>'Invalid temporary file.'
  1115 + );
  1116 + return $response;
  1117 + }
1101 1118
1102 - $folder = $kt->get_folder_by_id($folder_id); 1119 + $folder = &$kt->get_folder_by_id($folder_id);
1103 if (PEAR::isError($folder)) 1120 if (PEAR::isError($folder))
1104 { 1121 {
1105 $response=array( 1122 $response=array(
@@ -1109,7 +1126,7 @@ class KTWebService @@ -1109,7 +1126,7 @@ class KTWebService
1109 return $response; 1126 return $response;
1110 } 1127 }
1111 1128
1112 - $document = $folder->add_document($title, $filename, $documenttype, $tempfilename); 1129 + $document = &$folder->add_document($title, $filename, $documenttype, $tempfilename);
1113 if (PEAR::isError($document)) 1130 if (PEAR::isError($document))
1114 { 1131 {
1115 $response=array( 1132 $response=array(
@@ -1139,7 +1156,7 @@ class KTWebService @@ -1139,7 +1156,7 @@ class KTWebService
1139 */ 1156 */
1140 function checkin_document($session_id, $document_id, $filename, $reason, $tempfilename, $major_update ) 1157 function checkin_document($session_id, $document_id, $filename, $reason, $tempfilename, $major_update )
1141 { 1158 {
1142 - $kt = $this->get_ktapi($session_id ); 1159 + $kt = &$this->get_ktapi($session_id );
1143 if (is_array($kt)) 1160 if (is_array($kt))
1144 { 1161 {
1145 return $kt; 1162 return $kt;
@@ -1149,8 +1166,17 @@ class KTWebService @@ -1149,8 +1166,17 @@ class KTWebService
1149 'status_code'=>KTWS_ERR_INVALID_DOCUMENT, 1166 'status_code'=>KTWS_ERR_INVALID_DOCUMENT,
1150 'message'=>'', 1167 'message'=>'',
1151 ); 1168 );
1152 -  
1153 - $document = $kt->get_document_by_id($document_id); 1169 +
  1170 + // we need to add some security to ensure that people don't frig the checkin process to access restricted files.
  1171 + // possibly should change 'tempfilename' to be a hash or id of some sort if this is troublesome.
  1172 + $upload_manager = new KTUploadManager();
  1173 + if (substr($tempfilename,0,length($upload_manager->temp_dir)) != $upload_manager->temp_dir)
  1174 + {
  1175 + $response['message'] = 'Invalid temporary file';
  1176 + return $response;
  1177 + }
  1178 +
  1179 + $document = &$kt->get_document_by_id($document_id);
1154 if (PEAR::isError($document)) 1180 if (PEAR::isError($document))
1155 { 1181 {
1156 $response['message'] = $document->getMessage(); 1182 $response['message'] = $document->getMessage();
@@ -1164,8 +1190,7 @@ class KTWebService @@ -1164,8 +1190,7 @@ class KTWebService
1164 return $response; 1190 return $response;
1165 } 1191 }
1166 1192
1167 - $response['status_code'] = KTWS_SUCCESS;  
1168 - 1193 + $response['status_code'] = KTWS_SUCCESS;
1169 1194
1170 return $response; 1195 return $response;
1171 } 1196 }
@@ -1180,7 +1205,7 @@ class KTWebService @@ -1180,7 +1205,7 @@ class KTWebService
1180 */ 1205 */
1181 function checkout_document($session_id, $document_id, $reason) 1206 function checkout_document($session_id, $document_id, $reason)
1182 { 1207 {
1183 - $kt = $this->get_ktapi($session_id ); 1208 + $kt = &$this->get_ktapi($session_id );
1184 if (is_array($kt)) 1209 if (is_array($kt))
1185 { 1210 {
1186 return $kt; 1211 return $kt;
@@ -1191,7 +1216,7 @@ class KTWebService @@ -1191,7 +1216,7 @@ class KTWebService
1191 'message'=>'' 1216 'message'=>''
1192 ); 1217 );
1193 1218
1194 - $document = $kt->get_document_by_id($document_id); 1219 + $document = &$kt->get_document_by_id($document_id);
1195 if (PEAR::isError($document)) 1220 if (PEAR::isError($document))
1196 { 1221 {
1197 $response['message'] = $document->getMessage(); 1222 $response['message'] = $document->getMessage();
@@ -1205,8 +1230,10 @@ class KTWebService @@ -1205,8 +1230,10 @@ class KTWebService
1205 return $response; 1230 return $response;
1206 } 1231 }
1207 1232
  1233 + $session = &$kt->get_session();
  1234 +
1208 $download_manager = new KTDownloadManager(); 1235 $download_manager = new KTDownloadManager();
1209 - $download_manager->set_session($kt->get_session()->session); 1236 + $download_manager->set_session($session->session);
1210 $download_manager->cleanup(); 1237 $download_manager->cleanup();
1211 $url = $download_manager->allow_download($document); 1238 $url = $download_manager->allow_download($document);
1212 1239
@@ -1227,7 +1254,7 @@ class KTWebService @@ -1227,7 +1254,7 @@ class KTWebService
1227 */ 1254 */
1228 function undo_document_checkout($session_id, $document_id, $reason) 1255 function undo_document_checkout($session_id, $document_id, $reason)
1229 { 1256 {
1230 - $kt = $this->get_ktapi($session_id ); 1257 + $kt = &$this->get_ktapi($session_id );
1231 if (is_array($kt)) 1258 if (is_array($kt))
1232 { 1259 {
1233 return $kt; 1260 return $kt;
@@ -1238,15 +1265,20 @@ class KTWebService @@ -1238,15 +1265,20 @@ class KTWebService
1238 'message'=>'' 1265 'message'=>''
1239 ); 1266 );
1240 1267
1241 - $document = $kt->get_document_by_id($document_id); 1268 + $document = &$kt->get_document_by_id($document_id);
1242 if (PEAR::isError($document)) 1269 if (PEAR::isError($document))
1243 { 1270 {
1244 $response['message'] = $document->getMessage(); 1271 $response['message'] = $document->getMessage();
1245 return $response; 1272 return $response;
1246 } 1273 }
1247 1274
1248 - $document->undo_checkout($reason);  
1249 - 1275 + $result = $document->undo_checkout($reason);
  1276 + if (PEAR::isError($result))
  1277 + {
  1278 + $response['message'] = $result->getMessage();
  1279 + return $response;
  1280 + }
  1281 +
1250 $response['status_code'] = KTWS_SUCCESS; 1282 $response['status_code'] = KTWS_SUCCESS;
1251 1283
1252 return $response; 1284 return $response;
@@ -1262,7 +1294,7 @@ class KTWebService @@ -1262,7 +1294,7 @@ class KTWebService
1262 */ 1294 */
1263 function download_document($session_id, $document_id) 1295 function download_document($session_id, $document_id)
1264 { 1296 {
1265 - $kt = $this->get_ktapi($session_id ); 1297 + $kt = &$this->get_ktapi($session_id );
1266 if (is_array($kt)) 1298 if (is_array($kt))
1267 { 1299 {
1268 return $kt; 1300 return $kt;
@@ -1273,7 +1305,7 @@ class KTWebService @@ -1273,7 +1305,7 @@ class KTWebService
1273 'message'=>'' 1305 'message'=>''
1274 ); 1306 );
1275 1307
1276 - $document = $kt->get_document_by_id($document_id); 1308 + $document = &$kt->get_document_by_id($document_id);
1277 if (PEAR::isError($document)) 1309 if (PEAR::isError($document))
1278 { 1310 {
1279 $response['message'] = $document->getMessage(); 1311 $response['message'] = $document->getMessage();
@@ -1286,14 +1318,12 @@ class KTWebService @@ -1286,14 +1318,12 @@ class KTWebService
1286 $response['message'] = $result->getMessage(); 1318 $response['message'] = $result->getMessage();
1287 return $response; 1319 return $response;
1288 } 1320 }
1289 -  
1290 - $user = $kt->get_user();  
1291 - 1321 +
  1322 + $session = &$kt->get_session();
1292 $download_manager = new KTDownloadManager(); 1323 $download_manager = new KTDownloadManager();
1293 - $download_manager->set_session($kt->get_session()->session); 1324 + $download_manager->set_session($session->session);
1294 $download_manager->cleanup(); 1325 $download_manager->cleanup();
1295 - $url = $download_manager->allow_download($document);  
1296 - 1326 + $url = $download_manager->allow_download($document);
1297 1327
1298 $response['status_code'] = KTWS_SUCCESS; 1328 $response['status_code'] = KTWS_SUCCESS;
1299 $response['message'] = $url; 1329 $response['message'] = $url;
@@ -1311,7 +1341,7 @@ class KTWebService @@ -1311,7 +1341,7 @@ class KTWebService
1311 */ 1341 */
1312 function delete_document($session_id,$document_id, $reason) 1342 function delete_document($session_id,$document_id, $reason)
1313 { 1343 {
1314 - $kt = $this->get_ktapi($session_id ); 1344 + $kt = &$this->get_ktapi($session_id );
1315 if (is_array($kt)) 1345 if (is_array($kt))
1316 { 1346 {
1317 return $kt; 1347 return $kt;
@@ -1321,7 +1351,7 @@ class KTWebService @@ -1321,7 +1351,7 @@ class KTWebService
1321 'message'=>'' 1351 'message'=>''
1322 ); 1352 );
1323 1353
1324 - $document = $kt->get_document_by_id($document_id); 1354 + $document = &$kt->get_document_by_id($document_id);
1325 if (PEAR::isError($document)) 1355 if (PEAR::isError($document))
1326 { 1356 {
1327 $response['message'] = $document->getMessage(); 1357 $response['message'] = $document->getMessage();
@@ -1340,9 +1370,17 @@ class KTWebService @@ -1340,9 +1370,17 @@ class KTWebService
1340 1370
1341 } 1371 }
1342 1372
  1373 + /**
  1374 + * Change the document type.
  1375 + *
  1376 + * @param string $session_id
  1377 + * @param int $document_id
  1378 + * @param string $documenttype
  1379 + * @return kt_response
  1380 + */
1343 function change_document_type($session_id, $document_id, $documenttype) 1381 function change_document_type($session_id, $document_id, $documenttype)
1344 { 1382 {
1345 - $kt = $this->get_ktapi($session_id ); 1383 + $kt = &$this->get_ktapi($session_id );
1346 if (is_array($kt)) 1384 if (is_array($kt))
1347 { 1385 {
1348 return $kt; 1386 return $kt;
@@ -1352,7 +1390,7 @@ class KTWebService @@ -1352,7 +1390,7 @@ class KTWebService
1352 'message'=>'' 1390 'message'=>''
1353 ); 1391 );
1354 1392
1355 - $document = $kt->get_document_by_id($document_id); 1393 + $document = &$kt->get_document_by_id($document_id);
1356 if (PEAR::isError($document)) 1394 if (PEAR::isError($document))
1357 { 1395 {
1358 $response['message'] = $document->getMessage(); 1396 $response['message'] = $document->getMessage();
@@ -1370,9 +1408,20 @@ class KTWebService @@ -1370,9 +1408,20 @@ class KTWebService
1370 return $response; 1408 return $response;
1371 } 1409 }
1372 1410
  1411 + /**
  1412 + * Copy a document to another folder.
  1413 + *
  1414 + * @param string $session_id
  1415 + * @param int $document_id
  1416 + * @param int $folder_id
  1417 + * @param string $reason
  1418 + * @param string $newtitle
  1419 + * @param string $newfilename
  1420 + * @return kt_response
  1421 + */
1373 function copy_document($session_id,$document_id,$folder_id,$reason,$newtitle,$newfilename) 1422 function copy_document($session_id,$document_id,$folder_id,$reason,$newtitle,$newfilename)
1374 { 1423 {
1375 - $kt = $this->get_ktapi($session_id ); 1424 + $kt = &$this->get_ktapi($session_id );
1376 if (is_array($kt)) 1425 if (is_array($kt))
1377 { 1426 {
1378 return $kt; 1427 return $kt;
@@ -1382,14 +1431,14 @@ class KTWebService @@ -1382,14 +1431,14 @@ class KTWebService
1382 'message'=>'' 1431 'message'=>''
1383 ); 1432 );
1384 1433
1385 - $document = $kt->get_document_by_id($document_id); 1434 + $document = &$kt->get_document_by_id($document_id);
1386 if (PEAR::isError($document)) 1435 if (PEAR::isError($document))
1387 { 1436 {
1388 $response['message'] = $document->getMessage(); 1437 $response['message'] = $document->getMessage();
1389 return $response; 1438 return $response;
1390 } 1439 }
1391 1440
1392 - $tgt_folder = $kt->get_folder_by_id($folder_id); 1441 + $tgt_folder = &$kt->get_folder_by_id($folder_id);
1393 if (PEAR::isError($tgt_folder)) 1442 if (PEAR::isError($tgt_folder))
1394 { 1443 {
1395 $response['status_code'] = KTWS_ERR_INVALID_FOLDER; 1444 $response['status_code'] = KTWS_ERR_INVALID_FOLDER;
@@ -1408,9 +1457,20 @@ class KTWebService @@ -1408,9 +1457,20 @@ class KTWebService
1408 return $response; 1457 return $response;
1409 } 1458 }
1410 1459
  1460 + /**
  1461 + * Move a folder to another location.
  1462 + *
  1463 + * @param string $session_id
  1464 + * @param int $document_id
  1465 + * @param int $folder_id
  1466 + * @param string $reason
  1467 + * @param string $newtitle
  1468 + * @param string $newfilename
  1469 + * @return kt_response
  1470 + */
1411 function move_document($session_id,$document_id,$folder_id,$reason,$newtitle,$newfilename) 1471 function move_document($session_id,$document_id,$folder_id,$reason,$newtitle,$newfilename)
1412 { 1472 {
1413 - $kt = $this->get_ktapi($session_id ); 1473 + $kt = &$this->get_ktapi($session_id );
1414 if (is_array($kt)) 1474 if (is_array($kt))
1415 { 1475 {
1416 return $kt; 1476 return $kt;
@@ -1420,14 +1480,14 @@ class KTWebService @@ -1420,14 +1480,14 @@ class KTWebService
1420 'message'=>'' 1480 'message'=>''
1421 ); 1481 );
1422 1482
1423 - $document = $kt->get_document_by_id($document_id); 1483 + $document = &$kt->get_document_by_id($document_id);
1424 if (PEAR::isError($document)) 1484 if (PEAR::isError($document))
1425 { 1485 {
1426 $response['message'] = $document->getMessage(); 1486 $response['message'] = $document->getMessage();
1427 return $response; 1487 return $response;
1428 } 1488 }
1429 1489
1430 - $tgt_folder = $kt->get_folder_by_id($folder_id); 1490 + $tgt_folder = &$kt->get_folder_by_id($folder_id);
1431 if (PEAR::isError($tgt_folder)) 1491 if (PEAR::isError($tgt_folder))
1432 { 1492 {
1433 $response['status_code'] = KTWS_ERR_INVALID_FOLDER; 1493 $response['status_code'] = KTWS_ERR_INVALID_FOLDER;
@@ -1446,9 +1506,17 @@ class KTWebService @@ -1446,9 +1506,17 @@ class KTWebService
1446 return $response; 1506 return $response;
1447 } 1507 }
1448 1508
  1509 + /**
  1510 + * Changes the document title.
  1511 + *
  1512 + * @param string $session_id
  1513 + * @param int $document_id
  1514 + * @param string $newtitle
  1515 + * @return kt_response
  1516 + */
1449 function rename_document_title($session_id,$document_id,$newtitle) 1517 function rename_document_title($session_id,$document_id,$newtitle)
1450 { 1518 {
1451 - $kt = $this->get_ktapi($session_id ); 1519 + $kt = &$this->get_ktapi($session_id );
1452 if (is_array($kt)) 1520 if (is_array($kt))
1453 { 1521 {
1454 return $kt; 1522 return $kt;
@@ -1458,7 +1526,7 @@ class KTWebService @@ -1458,7 +1526,7 @@ class KTWebService
1458 'message'=>'' 1526 'message'=>''
1459 ); 1527 );
1460 1528
1461 - $document = $kt->get_document_by_id($document_id); 1529 + $document = &$kt->get_document_by_id($document_id);
1462 if (PEAR::isError($document)) 1530 if (PEAR::isError($document))
1463 { 1531 {
1464 $response['message'] = $document->getMessage(); 1532 $response['message'] = $document->getMessage();
@@ -1476,9 +1544,17 @@ class KTWebService @@ -1476,9 +1544,17 @@ class KTWebService
1476 return $response; 1544 return $response;
1477 } 1545 }
1478 1546
  1547 + /**
  1548 + * Renames the document filename.
  1549 + *
  1550 + * @param string $session_id
  1551 + * @param int $document_id
  1552 + * @param string $newfilename
  1553 + * @return kt_response
  1554 + */
1479 function rename_document_filename($session_id,$document_id,$newfilename) 1555 function rename_document_filename($session_id,$document_id,$newfilename)
1480 { 1556 {
1481 - $kt = $this->get_ktapi($session_id ); 1557 + $kt = &$this->get_ktapi($session_id );
1482 if (is_array($kt)) 1558 if (is_array($kt))
1483 { 1559 {
1484 return $kt; 1560 return $kt;
@@ -1488,7 +1564,7 @@ class KTWebService @@ -1488,7 +1564,7 @@ class KTWebService
1488 'message'=>'' 1564 'message'=>''
1489 ); 1565 );
1490 1566
1491 - $document = $kt->get_document_by_id($document_id); 1567 + $document = &$kt->get_document_by_id($document_id);
1492 if (PEAR::isError($document)) 1568 if (PEAR::isError($document))
1493 { 1569 {
1494 $response['message'] = $document->getMessage(); 1570 $response['message'] = $document->getMessage();
@@ -1517,7 +1593,7 @@ class KTWebService @@ -1517,7 +1593,7 @@ class KTWebService
1517 */ 1593 */
1518 function change_document_owner($session_id, $document_id, $username, $reason) 1594 function change_document_owner($session_id, $document_id, $username, $reason)
1519 { 1595 {
1520 - $kt = $this->get_ktapi($session_id ); 1596 + $kt = &$this->get_ktapi($session_id );
1521 if (is_array($kt)) 1597 if (is_array($kt))
1522 { 1598 {
1523 return $kt; 1599 return $kt;
@@ -1527,7 +1603,7 @@ class KTWebService @@ -1527,7 +1603,7 @@ class KTWebService
1527 'message'=>'' 1603 'message'=>''
1528 ); 1604 );
1529 1605
1530 - $document = $kt->get_document_by_id($document_id); 1606 + $document = &$kt->get_document_by_id($document_id);
1531 if (PEAR::isError($document)) 1607 if (PEAR::isError($document))
1532 { 1608 {
1533 $response['message'] = $document->getMessage(); 1609 $response['message'] = $document->getMessage();
@@ -1545,9 +1621,17 @@ class KTWebService @@ -1545,9 +1621,17 @@ class KTWebService
1545 return $response; 1621 return $response;
1546 } 1622 }
1547 1623
  1624 + /**
  1625 + * Start a workflow on a document
  1626 + *
  1627 + * @param string $session_id
  1628 + * @param int $document_id
  1629 + * @param string $workflow
  1630 + * @return kt_response
  1631 + */
1548 function start_document_workflow($session_id,$document_id,$workflow) 1632 function start_document_workflow($session_id,$document_id,$workflow)
1549 { 1633 {
1550 - $kt = $this->get_ktapi($session_id ); 1634 + $kt = &$this->get_ktapi($session_id );
1551 if (is_array($kt)) 1635 if (is_array($kt))
1552 { 1636 {
1553 return $kt; 1637 return $kt;
@@ -1557,14 +1641,14 @@ class KTWebService @@ -1557,14 +1641,14 @@ class KTWebService
1557 'message'=>'' 1641 'message'=>''
1558 ); 1642 );
1559 1643
1560 - $document = $kt->get_document_by_id($document_id); 1644 + $document = &$kt->get_document_by_id($document_id);
1561 if (PEAR::isError($document)) 1645 if (PEAR::isError($document))
1562 { 1646 {
1563 $response['message'] = $document->getMessage(); 1647 $response['message'] = $document->getMessage();
1564 return $response; 1648 return $response;
1565 } 1649 }
1566 1650
1567 - $result = $document->start_workflow($workflow); 1651 + $result = &$document->start_workflow($workflow);
1568 if (PEAR::isError($result)) 1652 if (PEAR::isError($result))
1569 { 1653 {
1570 $response['message'] = $result->getMessage(); 1654 $response['message'] = $result->getMessage();
@@ -1575,10 +1659,16 @@ class KTWebService @@ -1575,10 +1659,16 @@ class KTWebService
1575 return $response; 1659 return $response;
1576 } 1660 }
1577 1661
1578 - 1662 + /**
  1663 + * Removes the workflow process on a document.
  1664 + *
  1665 + * @param string $session_id
  1666 + * @param int $document_id
  1667 + * @return kt_response
  1668 + */
1579 function delete_document_workflow($session_id,$document_id) 1669 function delete_document_workflow($session_id,$document_id)
1580 { 1670 {
1581 - $kt = $this->get_ktapi($session_id ); 1671 + $kt = &$this->get_ktapi($session_id );
1582 if (is_array($kt)) 1672 if (is_array($kt))
1583 { 1673 {
1584 return $kt; 1674 return $kt;
@@ -1588,7 +1678,7 @@ class KTWebService @@ -1588,7 +1678,7 @@ class KTWebService
1588 'message'=>'' 1678 'message'=>''
1589 ); 1679 );
1590 1680
1591 - $document = $kt->get_document_by_id($document_id); 1681 + $document = &$kt->get_document_by_id($document_id);
1592 if (PEAR::isError($document)) 1682 if (PEAR::isError($document))
1593 { 1683 {
1594 $response['message'] = $document->getMessage(); 1684 $response['message'] = $document->getMessage();
@@ -1606,9 +1696,18 @@ class KTWebService @@ -1606,9 +1696,18 @@ class KTWebService
1606 return $response; 1696 return $response;
1607 } 1697 }
1608 1698
  1699 + /**
  1700 + * Starts a transitions on a document with a workflow.
  1701 + *
  1702 + * @param string $session_id
  1703 + * @param int $document_id
  1704 + * @param string $transition
  1705 + * @param string $reason
  1706 + * @return kt_response
  1707 + */
1609 function perform_document_workflow_transition($session_id,$document_id,$transition,$reason) 1708 function perform_document_workflow_transition($session_id,$document_id,$transition,$reason)
1610 { 1709 {
1611 - $kt = $this->get_ktapi($session_id ); 1710 + $kt = &$this->get_ktapi($session_id );
1612 if (is_array($kt)) 1711 if (is_array($kt))
1613 { 1712 {
1614 return $kt; 1713 return $kt;
@@ -1618,7 +1717,7 @@ class KTWebService @@ -1618,7 +1717,7 @@ class KTWebService
1618 'message'=>'' 1717 'message'=>''
1619 ); 1718 );
1620 1719
1621 - $document = $kt->get_document_by_id($document_id); 1720 + $document = &$kt->get_document_by_id($document_id);
1622 if (PEAR::isError($document)) 1721 if (PEAR::isError($document))
1623 { 1722 {
1624 $response['message'] = $document->getMessage(); 1723 $response['message'] = $document->getMessage();
@@ -1636,9 +1735,16 @@ class KTWebService @@ -1636,9 +1735,16 @@ class KTWebService
1636 return $response; 1735 return $response;
1637 } 1736 }
1638 1737
  1738 + /**
  1739 + * Returns the metadata on a document.
  1740 + *
  1741 + * @param string $session_id
  1742 + * @param int $document_id
  1743 + * @return kt_metadata_response
  1744 + */
1639 function get_document_metadata($session_id,$document_id) 1745 function get_document_metadata($session_id,$document_id)
1640 { 1746 {
1641 - $kt = $this->get_ktapi($session_id ); 1747 + $kt = &$this->get_ktapi($session_id );
1642 if (is_array($kt)) 1748 if (is_array($kt))
1643 { 1749 {
1644 return $kt; 1750 return $kt;
@@ -1648,7 +1754,7 @@ class KTWebService @@ -1648,7 +1754,7 @@ class KTWebService
1648 'message'=>'' 1754 'message'=>''
1649 ); 1755 );
1650 1756
1651 - $document = $kt->get_document_by_id($document_id); 1757 + $document = &$kt->get_document_by_id($document_id);
1652 if (PEAR::isError($document)) 1758 if (PEAR::isError($document))
1653 { 1759 {
1654 $response['message'] = $document->getMessage(); 1760 $response['message'] = $document->getMessage();
@@ -1678,23 +1784,6 @@ class KTWebService @@ -1678,23 +1784,6 @@ class KTWebService
1678 $metadata[$i]['fields'][$j]['selection'] = $new; 1784 $metadata[$i]['fields'][$j]['selection'] = $new;
1679 } 1785 }
1680 } 1786 }
1681 - /*foreach($metadata as & $fieldset)  
1682 - {  
1683 - foreach($fieldset['fields'] as &$fields)  
1684 - {  
1685 - $selection = array();  
1686 - foreach($fields['selection'] as $item)  
1687 - {  
1688 - $selection[] = array(  
1689 - 'id'=>null,  
1690 - 'name'=>$item,  
1691 - 'value'=>$item,  
1692 - 'parent_id'=>null  
1693 - );  
1694 - }  
1695 - $fieldset['fields']['selection'] = $selection;  
1696 - }  
1697 - }*/  
1698 1787
1699 $response = array( 1788 $response = array(
1700 'status_code' => KTWS_SUCCESS, 1789 'status_code' => KTWS_SUCCESS,
@@ -1705,10 +1794,17 @@ class KTWebService @@ -1705,10 +1794,17 @@ class KTWebService
1705 1794
1706 } 1795 }
1707 1796
1708 - 1797 + /**
  1798 + * Updates document metadata.
  1799 + *
  1800 + * @param string $session_id
  1801 + * @param int $document_id
  1802 + * @param array $metadata
  1803 + * @return kt_response
  1804 + */
1709 function update_document_metadata($session_id,$document_id,$metadata) 1805 function update_document_metadata($session_id,$document_id,$metadata)
1710 { 1806 {
1711 - $kt = $this->get_ktapi($session_id ); 1807 + $kt = &$this->get_ktapi($session_id );
1712 if (is_array($kt)) 1808 if (is_array($kt))
1713 { 1809 {
1714 return $kt; 1810 return $kt;
@@ -1718,7 +1814,7 @@ class KTWebService @@ -1718,7 +1814,7 @@ class KTWebService
1718 'message'=>'' 1814 'message'=>''
1719 ); 1815 );
1720 1816
1721 - $document = $kt->get_document_by_id($document_id); 1817 + $document = &$kt->get_document_by_id($document_id);
1722 if (PEAR::isError($document)) 1818 if (PEAR::isError($document))
1723 { 1819 {
1724 $response['message'] = $document->getMessage(); 1820 $response['message'] = $document->getMessage();
@@ -1738,9 +1834,16 @@ class KTWebService @@ -1738,9 +1834,16 @@ class KTWebService
1738 1834
1739 } 1835 }
1740 1836
  1837 + /**
  1838 + * Returns a list of available transitions on a give document with a workflow.
  1839 + *
  1840 + * @param string $session_id
  1841 + * @param int $document_id
  1842 + * @return kt_workflow_transitions_response
  1843 + */
1741 function get_document_workflow_transitions($session_id, $document_id) 1844 function get_document_workflow_transitions($session_id, $document_id)
1742 { 1845 {
1743 - $kt = $this->get_ktapi($session_id ); 1846 + $kt = &$this->get_ktapi($session_id );
1744 if (is_array($kt)) 1847 if (is_array($kt))
1745 { 1848 {
1746 return $kt; 1849 return $kt;
@@ -1750,7 +1853,7 @@ class KTWebService @@ -1750,7 +1853,7 @@ class KTWebService
1750 'message'=>'' 1853 'message'=>''
1751 ); 1854 );
1752 1855
1753 - $document = $kt->get_document_by_id($document_id); 1856 + $document = &$kt->get_document_by_id($document_id);
1754 if (PEAR::isError($document)) 1857 if (PEAR::isError($document))
1755 { 1858 {
1756 $response['message'] = $document->getMessage(); 1859 $response['message'] = $document->getMessage();
@@ -1771,9 +1874,16 @@ class KTWebService @@ -1771,9 +1874,16 @@ class KTWebService
1771 return $response; 1874 return $response;
1772 } 1875 }
1773 1876
  1877 + /**
  1878 + * Returns the current state that the document is in.
  1879 + *
  1880 + * @param string $session_id
  1881 + * @param int $document_id
  1882 + * @return kt_response
  1883 + */
1774 function get_document_workflow_state($session_id, $document_id) 1884 function get_document_workflow_state($session_id, $document_id)
1775 { 1885 {
1776 - $kt = $this->get_ktapi($session_id ); 1886 + $kt = &$this->get_ktapi($session_id );
1777 if (is_array($kt)) 1887 if (is_array($kt))
1778 { 1888 {
1779 return $kt; 1889 return $kt;
@@ -1783,7 +1893,7 @@ class KTWebService @@ -1783,7 +1893,7 @@ class KTWebService
1783 'message'=>'' 1893 'message'=>''
1784 ); 1894 );
1785 1895
1786 - $document = $kt->get_document_by_id($document_id); 1896 + $document = &$kt->get_document_by_id($document_id);
1787 if (PEAR::isError($document)) 1897 if (PEAR::isError($document))
1788 { 1898 {
1789 $response['message'] = $document->getMessage(); 1899 $response['message'] = $document->getMessage();
@@ -1804,9 +1914,16 @@ class KTWebService @@ -1804,9 +1914,16 @@ class KTWebService
1804 return $response; 1914 return $response;
1805 } 1915 }
1806 1916
  1917 + /**
  1918 + * Returns the document transaction history.
  1919 + *
  1920 + * @param string $session_id
  1921 + * @param int $document_id
  1922 + * @return kt_transaction_history_response
  1923 + */
1807 function get_document_transaction_history($session_id, $document_id) 1924 function get_document_transaction_history($session_id, $document_id)
1808 { 1925 {
1809 - $kt = $this->get_ktapi($session_id ); 1926 + $kt = &$this->get_ktapi($session_id );
1810 if (is_array($kt)) 1927 if (is_array($kt))
1811 { 1928 {
1812 return $kt; 1929 return $kt;
@@ -1816,7 +1933,7 @@ class KTWebService @@ -1816,7 +1933,7 @@ class KTWebService
1816 'message'=>'' 1933 'message'=>''
1817 ); 1934 );
1818 1935
1819 - $document = $kt->get_document_by_id($document_id); 1936 + $document = &$kt->get_document_by_id($document_id);
1820 if (PEAR::isError($document)) 1937 if (PEAR::isError($document))
1821 { 1938 {
1822 $response['message'] = $document->getMessage(); 1939 $response['message'] = $document->getMessage();
@@ -1837,9 +1954,16 @@ class KTWebService @@ -1837,9 +1954,16 @@ class KTWebService
1837 return $response; 1954 return $response;
1838 } 1955 }
1839 1956
  1957 + /**
  1958 + * Returns the version history.
  1959 + *
  1960 + * @param string $session_id
  1961 + * @param int $document_id
  1962 + * @return kt_version_history_response
  1963 + */
1840 function get_document_version_history($session_id, $document_id) 1964 function get_document_version_history($session_id, $document_id)
1841 { 1965 {
1842 - $kt = $this->get_ktapi($session_id ); 1966 + $kt = &$this->get_ktapi($session_id );
1843 if (is_array($kt)) 1967 if (is_array($kt))
1844 { 1968 {
1845 return $kt; 1969 return $kt;
@@ -1849,7 +1973,7 @@ class KTWebService @@ -1849,7 +1973,7 @@ class KTWebService
1849 'message'=>'' 1973 'message'=>''
1850 ); 1974 );
1851 1975
1852 - $document = $kt->get_document_by_id($document_id); 1976 + $document = &$kt->get_document_by_id($document_id);
1853 if (PEAR::isError($document)) 1977 if (PEAR::isError($document))
1854 { 1978 {
1855 $response['message'] = $document->getMessage(); 1979 $response['message'] = $document->getMessage();
@@ -1883,16 +2007,21 @@ class KTWebService @@ -1883,16 +2007,21 @@ class KTWebService
1883 2007
1884 $server->addObjectMap($this, 'http://schemas.xmlsoap.org/soap/envelope/'); 2008 $server->addObjectMap($this, 'http://schemas.xmlsoap.org/soap/envelope/');
1885 2009
1886 - if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST') { 2010 + if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST')
  2011 + {
1887 $server->service($HTTP_RAW_POST_DATA); 2012 $server->service($HTTP_RAW_POST_DATA);
1888 - } else { 2013 + }
  2014 + else
  2015 + {
1889 // Create the DISCO server 2016 // Create the DISCO server
1890 $disco = new SOAP_DISCO_Server($server, $this->namespace); 2017 $disco = new SOAP_DISCO_Server($server, $this->namespace);
1891 header("Content-type: text/xml"); 2018 header("Content-type: text/xml");
1892 - if (isset($_SERVER['QUERY_STRING']) &&  
1893 - strcasecmp($_SERVER['QUERY_STRING'],'wsdl') == 0) { 2019 + if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl') == 0)
  2020 + {
1894 echo $disco->getWSDL(); 2021 echo $disco->getWSDL();
1895 - } else { 2022 + }
  2023 + else
  2024 + {
1896 echo $disco->getDISCO(); 2025 echo $disco->getDISCO();
1897 } 2026 }
1898 } 2027 }
@@ -1901,16 +2030,15 @@ class KTWebService @@ -1901,16 +2030,15 @@ class KTWebService
1901 function __dispatch($methodname) 2030 function __dispatch($methodname)
1902 { 2031 {
1903 if (isset($this->__dispatch_map[$methodname])) 2032 if (isset($this->__dispatch_map[$methodname]))
1904 - return $this->__dispatch_map[$methodname]; 2033 + {
  2034 + return $this->__dispatch_map[$methodname];
  2035 + }
1905 return NULL; 2036 return NULL;
1906 } 2037 }
1907 2038
1908 } 2039 }
1909 2040
1910 -  
1911 -  
1912 $webservice = new KTWebService(); 2041 $webservice = new KTWebService();
1913 $webservice->run(); 2042 $webservice->run();
1914 2043
1915 -  
1916 ?> 2044 ?>
1917 \ No newline at end of file 2045 \ No newline at end of file