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 77 {
78 78 // Caching was giving some problems, so disable it.
79 79  
80   - $config = KTConfig::getSingleton();
  80 + $config = &KTConfig::getSingleton();
81 81 $cache_enabled = $config->get('cache/cacheEnabled');
82 82 if ($cache_enabled)
83 83 {
... ... @@ -513,9 +513,9 @@ class KTWebService
513 513 * @param string $session_id
514 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 520 $session = $kt->get_active_session($session_id, null);
521 521  
... ... @@ -546,7 +546,7 @@ class KTWebService
546 546 'message'=>'',
547 547 );
548 548  
549   - $kt = new KTAPI();
  549 + $kt = &new KTAPI();
550 550  
551 551 $session = $kt->start_session($username,$password, $ip);
552 552  
... ... @@ -570,7 +570,7 @@ class KTWebService
570 570 */
571 571 function logout($session_id)
572 572 {
573   - $kt = $this->get_ktapi($session_id);
  573 + $kt = &$this->get_ktapi($session_id);
574 574 if (is_array($kt))
575 575 {
576 576 return $kt;
... ... @@ -581,7 +581,7 @@ class KTWebService
581 581 'message'=>''
582 582 );
583 583  
584   - $session = $kt->get_session();
  584 + $session = &$kt->get_session();
585 585 if (PEAR::isError($session))
586 586 {
587 587 $response['message'] = $session->getMessage();
... ... @@ -603,13 +603,13 @@ class KTWebService
603 603 */
604 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 607 if (is_array($kt))
608 608 {
609 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 613 if (PEAR::isError($folder))
614 614 {
615 615 $response=array(
... ... @@ -635,13 +635,13 @@ class KTWebService
635 635 */
636 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 639 if (is_array($kt))
640 640 {
641 641 return $kt;
642 642 }
643 643  
644   - $root = $kt->get_root_folder();
  644 + $root = &$kt->get_root_folder();
645 645 if (PEAR::isError($root))
646 646 {
647 647 $response=array(
... ... @@ -651,7 +651,7 @@ class KTWebService
651 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 655 if (PEAR::isError($folder))
656 656 {
657 657 $response=array(
... ... @@ -679,13 +679,13 @@ class KTWebService
679 679 */
680 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 683 if (is_array($kt))
684 684 {
685 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 689 if (PEAR::isError($folder))
690 690 {
691 691 $response=array(
... ... @@ -719,13 +719,13 @@ class KTWebService
719 719 */
720 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 723 if (is_array($kt))
724 724 {
725 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 729 if (PEAR::isError($folder))
730 730 {
731 731 $response=array(
... ... @@ -735,7 +735,7 @@ class KTWebService
735 735 return $response;
736 736 }
737 737  
738   - $newfolder = $folder->add_folder($folder_name);
  738 + $newfolder = &$folder->add_folder($folder_name);
739 739 if (PEAR::isError($newfolder))
740 740 {
741 741 $response=array(
... ... @@ -762,7 +762,7 @@ class KTWebService
762 762 */
763 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 766 if (is_array($kt))
767 767 {
768 768 return $kt;
... ... @@ -773,7 +773,7 @@ class KTWebService
773 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 777 if (PEAR::isError($folder))
778 778 {
779 779 $response['message'] = $folder->getMessage();
... ... @@ -785,6 +785,7 @@ class KTWebService
785 785 {
786 786 $response['status_code'] = KTWS_ERR_PROBLEM;
787 787 $response['message'] = $result->getMessage();
  788 + return $response;
788 789 }
789 790  
790 791 $response['status_code'] = KTWS_SUCCESS;
... ... @@ -801,7 +802,7 @@ class KTWebService
801 802 */
802 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 806 if (is_array($kt))
806 807 {
807 808 return $kt;
... ... @@ -812,7 +813,7 @@ class KTWebService
812 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 817 if (PEAR::isError($folder))
817 818 {
818 819 $response['message']= $folder->getMessage();
... ... @@ -825,6 +826,7 @@ class KTWebService
825 826 {
826 827 $response['status_code'] = KTWS_ERR_PROBLEM;
827 828 $response['message'] = $result->getMessage();
  829 + return $response;
828 830 }
829 831  
830 832 $response['status_code']= KTWS_SUCCESS;
... ... @@ -843,7 +845,7 @@ class KTWebService
843 845 */
844 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 849 if (is_array($kt))
848 850 {
849 851 return $kt;
... ... @@ -859,14 +861,14 @@ class KTWebService
859 861 return $response;
860 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 865 if (PEAR::isError($src_folder))
864 866 {
865 867 $response['message'] = $src_folder->getMessage();
866 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 872 if (PEAR::isError($tgt_folder))
871 873 {
872 874 $response['message'] = $tgt_folder->getMessage();
... ... @@ -878,9 +880,9 @@ class KTWebService
878 880 {
879 881 $response['status_code'] = KTWS_ERR_PROBLEM;
880 882 $response['message'] = $result->getMessage();
  883 + return $response;
881 884 }
882 885  
883   -
884 886 $response['status_code']= KTWS_SUCCESS;
885 887  
886 888 return $response;
... ... @@ -897,7 +899,7 @@ class KTWebService
897 899 */
898 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 903 if (is_array($kt))
902 904 {
903 905 return $kt;
... ... @@ -913,14 +915,14 @@ class KTWebService
913 915 return $response;
914 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 919 if (PEAR::isError($src_folder))
918 920 {
919 921 $response['message'] = $src_folder->getMessage();
920 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 926 if (PEAR::isError($tgt_folder))
925 927 {
926 928 $response['message'] = $tgt_folder->getMessage();
... ... @@ -932,6 +934,7 @@ class KTWebService
932 934 {
933 935 $response['status_code'] = KTWS_ERR_PROBLEM;
934 936 $response['message'] = $result->getMessage();
  937 + return $response;
935 938 }
936 939  
937 940 $response['status_code']= KTWS_SUCCESS;
... ... @@ -947,7 +950,7 @@ class KTWebService
947 950 */
948 951 function get_document_types($session_id)
949 952 {
950   - $kt = $this->get_ktapi($session_id );
  953 + $kt = &$this->get_ktapi($session_id );
951 954 if (is_array($kt))
952 955 {
953 956 return $kt;
... ... @@ -981,7 +984,7 @@ class KTWebService
981 984 */
982 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 988 if (is_array($kt))
986 989 {
987 990 return $kt;
... ... @@ -1002,6 +1005,7 @@ class KTWebService
1002 1005 {
1003 1006 $response['status_code'] = KTWS_ERR_PROBLEM;
1004 1007 $response['message'] = $detail->getMessage();
  1008 + return $response;
1005 1009 }
1006 1010  
1007 1011 $detail['status_code']=KTWS_SUCCESS;
... ... @@ -1033,16 +1037,17 @@ class KTWebService
1033 1037 {
1034 1038 $response['status_code'] = KTWS_ERR_PROBLEM;
1035 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 1045 if (is_array($kt))
1041 1046 {
1042 1047 return $kt;
1043 1048 }
1044 1049  
1045   - $root = $kt->get_root_folder();
  1050 + $root = &$kt->get_root_folder();
1046 1051 if (PEAR::isError($root))
1047 1052 {
1048 1053  
... ... @@ -1051,11 +1056,11 @@ class KTWebService
1051 1056  
1052 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 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 1065 if (PEAR::isError($document))
1061 1066 {
... ... @@ -1093,13 +1098,25 @@ class KTWebService
1093 1098 */
1094 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 1102 if (is_array($kt))
1098 1103 {
1099 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 1120 if (PEAR::isError($folder))
1104 1121 {
1105 1122 $response=array(
... ... @@ -1109,7 +1126,7 @@ class KTWebService
1109 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 1130 if (PEAR::isError($document))
1114 1131 {
1115 1132 $response=array(
... ... @@ -1139,7 +1156,7 @@ class KTWebService
1139 1156 */
1140 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 1160 if (is_array($kt))
1144 1161 {
1145 1162 return $kt;
... ... @@ -1149,8 +1166,17 @@ class KTWebService
1149 1166 'status_code'=>KTWS_ERR_INVALID_DOCUMENT,
1150 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 1180 if (PEAR::isError($document))
1155 1181 {
1156 1182 $response['message'] = $document->getMessage();
... ... @@ -1164,8 +1190,7 @@ class KTWebService
1164 1190 return $response;
1165 1191 }
1166 1192  
1167   - $response['status_code'] = KTWS_SUCCESS;
1168   -
  1193 + $response['status_code'] = KTWS_SUCCESS;
1169 1194  
1170 1195 return $response;
1171 1196 }
... ... @@ -1180,7 +1205,7 @@ class KTWebService
1180 1205 */
1181 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 1209 if (is_array($kt))
1185 1210 {
1186 1211 return $kt;
... ... @@ -1191,7 +1216,7 @@ class KTWebService
1191 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 1220 if (PEAR::isError($document))
1196 1221 {
1197 1222 $response['message'] = $document->getMessage();
... ... @@ -1205,8 +1230,10 @@ class KTWebService
1205 1230 return $response;
1206 1231 }
1207 1232  
  1233 + $session = &$kt->get_session();
  1234 +
1208 1235 $download_manager = new KTDownloadManager();
1209   - $download_manager->set_session($kt->get_session()->session);
  1236 + $download_manager->set_session($session->session);
1210 1237 $download_manager->cleanup();
1211 1238 $url = $download_manager->allow_download($document);
1212 1239  
... ... @@ -1227,7 +1254,7 @@ class KTWebService
1227 1254 */
1228 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 1258 if (is_array($kt))
1232 1259 {
1233 1260 return $kt;
... ... @@ -1238,15 +1265,20 @@ class KTWebService
1238 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 1269 if (PEAR::isError($document))
1243 1270 {
1244 1271 $response['message'] = $document->getMessage();
1245 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 1282 $response['status_code'] = KTWS_SUCCESS;
1251 1283  
1252 1284 return $response;
... ... @@ -1262,7 +1294,7 @@ class KTWebService
1262 1294 */
1263 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 1298 if (is_array($kt))
1267 1299 {
1268 1300 return $kt;
... ... @@ -1273,7 +1305,7 @@ class KTWebService
1273 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 1309 if (PEAR::isError($document))
1278 1310 {
1279 1311 $response['message'] = $document->getMessage();
... ... @@ -1286,14 +1318,12 @@ class KTWebService
1286 1318 $response['message'] = $result->getMessage();
1287 1319 return $response;
1288 1320 }
1289   -
1290   - $user = $kt->get_user();
1291   -
  1321 +
  1322 + $session = &$kt->get_session();
1292 1323 $download_manager = new KTDownloadManager();
1293   - $download_manager->set_session($kt->get_session()->session);
  1324 + $download_manager->set_session($session->session);
1294 1325 $download_manager->cleanup();
1295   - $url = $download_manager->allow_download($document);
1296   -
  1326 + $url = $download_manager->allow_download($document);
1297 1327  
1298 1328 $response['status_code'] = KTWS_SUCCESS;
1299 1329 $response['message'] = $url;
... ... @@ -1311,7 +1341,7 @@ class KTWebService
1311 1341 */
1312 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 1345 if (is_array($kt))
1316 1346 {
1317 1347 return $kt;
... ... @@ -1321,7 +1351,7 @@ class KTWebService
1321 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 1355 if (PEAR::isError($document))
1326 1356 {
1327 1357 $response['message'] = $document->getMessage();
... ... @@ -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 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 1384 if (is_array($kt))
1347 1385 {
1348 1386 return $kt;
... ... @@ -1352,7 +1390,7 @@ class KTWebService
1352 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 1394 if (PEAR::isError($document))
1357 1395 {
1358 1396 $response['message'] = $document->getMessage();
... ... @@ -1370,9 +1408,20 @@ class KTWebService
1370 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 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 1425 if (is_array($kt))
1377 1426 {
1378 1427 return $kt;
... ... @@ -1382,14 +1431,14 @@ class KTWebService
1382 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 1435 if (PEAR::isError($document))
1387 1436 {
1388 1437 $response['message'] = $document->getMessage();
1389 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 1442 if (PEAR::isError($tgt_folder))
1394 1443 {
1395 1444 $response['status_code'] = KTWS_ERR_INVALID_FOLDER;
... ... @@ -1408,9 +1457,20 @@ class KTWebService
1408 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 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 1474 if (is_array($kt))
1415 1475 {
1416 1476 return $kt;
... ... @@ -1420,14 +1480,14 @@ class KTWebService
1420 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 1484 if (PEAR::isError($document))
1425 1485 {
1426 1486 $response['message'] = $document->getMessage();
1427 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 1491 if (PEAR::isError($tgt_folder))
1432 1492 {
1433 1493 $response['status_code'] = KTWS_ERR_INVALID_FOLDER;
... ... @@ -1446,9 +1506,17 @@ class KTWebService
1446 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 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 1520 if (is_array($kt))
1453 1521 {
1454 1522 return $kt;
... ... @@ -1458,7 +1526,7 @@ class KTWebService
1458 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 1530 if (PEAR::isError($document))
1463 1531 {
1464 1532 $response['message'] = $document->getMessage();
... ... @@ -1476,9 +1544,17 @@ class KTWebService
1476 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 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 1558 if (is_array($kt))
1483 1559 {
1484 1560 return $kt;
... ... @@ -1488,7 +1564,7 @@ class KTWebService
1488 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 1568 if (PEAR::isError($document))
1493 1569 {
1494 1570 $response['message'] = $document->getMessage();
... ... @@ -1517,7 +1593,7 @@ class KTWebService
1517 1593 */
1518 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 1597 if (is_array($kt))
1522 1598 {
1523 1599 return $kt;
... ... @@ -1527,7 +1603,7 @@ class KTWebService
1527 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 1607 if (PEAR::isError($document))
1532 1608 {
1533 1609 $response['message'] = $document->getMessage();
... ... @@ -1545,9 +1621,17 @@ class KTWebService
1545 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 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 1635 if (is_array($kt))
1552 1636 {
1553 1637 return $kt;
... ... @@ -1557,14 +1641,14 @@ class KTWebService
1557 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 1645 if (PEAR::isError($document))
1562 1646 {
1563 1647 $response['message'] = $document->getMessage();
1564 1648 return $response;
1565 1649 }
1566 1650  
1567   - $result = $document->start_workflow($workflow);
  1651 + $result = &$document->start_workflow($workflow);
1568 1652 if (PEAR::isError($result))
1569 1653 {
1570 1654 $response['message'] = $result->getMessage();
... ... @@ -1575,10 +1659,16 @@ class KTWebService
1575 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 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 1672 if (is_array($kt))
1583 1673 {
1584 1674 return $kt;
... ... @@ -1588,7 +1678,7 @@ class KTWebService
1588 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 1682 if (PEAR::isError($document))
1593 1683 {
1594 1684 $response['message'] = $document->getMessage();
... ... @@ -1606,9 +1696,18 @@ class KTWebService
1606 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 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 1711 if (is_array($kt))
1613 1712 {
1614 1713 return $kt;
... ... @@ -1618,7 +1717,7 @@ class KTWebService
1618 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 1721 if (PEAR::isError($document))
1623 1722 {
1624 1723 $response['message'] = $document->getMessage();
... ... @@ -1636,9 +1735,16 @@ class KTWebService
1636 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 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 1748 if (is_array($kt))
1643 1749 {
1644 1750 return $kt;
... ... @@ -1648,7 +1754,7 @@ class KTWebService
1648 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 1758 if (PEAR::isError($document))
1653 1759 {
1654 1760 $response['message'] = $document->getMessage();
... ... @@ -1678,23 +1784,6 @@ class KTWebService
1678 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 1788 $response = array(
1700 1789 'status_code' => KTWS_SUCCESS,
... ... @@ -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 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 1808 if (is_array($kt))
1713 1809 {
1714 1810 return $kt;
... ... @@ -1718,7 +1814,7 @@ class KTWebService
1718 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 1818 if (PEAR::isError($document))
1723 1819 {
1724 1820 $response['message'] = $document->getMessage();
... ... @@ -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 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 1847 if (is_array($kt))
1745 1848 {
1746 1849 return $kt;
... ... @@ -1750,7 +1853,7 @@ class KTWebService
1750 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 1857 if (PEAR::isError($document))
1755 1858 {
1756 1859 $response['message'] = $document->getMessage();
... ... @@ -1771,9 +1874,16 @@ class KTWebService
1771 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 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 1887 if (is_array($kt))
1778 1888 {
1779 1889 return $kt;
... ... @@ -1783,7 +1893,7 @@ class KTWebService
1783 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 1897 if (PEAR::isError($document))
1788 1898 {
1789 1899 $response['message'] = $document->getMessage();
... ... @@ -1804,9 +1914,16 @@ class KTWebService
1804 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 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 1927 if (is_array($kt))
1811 1928 {
1812 1929 return $kt;
... ... @@ -1816,7 +1933,7 @@ class KTWebService
1816 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 1937 if (PEAR::isError($document))
1821 1938 {
1822 1939 $response['message'] = $document->getMessage();
... ... @@ -1837,9 +1954,16 @@ class KTWebService
1837 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 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 1967 if (is_array($kt))
1844 1968 {
1845 1969 return $kt;
... ... @@ -1849,7 +1973,7 @@ class KTWebService
1849 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 1977 if (PEAR::isError($document))
1854 1978 {
1855 1979 $response['message'] = $document->getMessage();
... ... @@ -1883,16 +2007,21 @@ class KTWebService
1883 2007  
1884 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 2012 $server->service($HTTP_RAW_POST_DATA);
1888   - } else {
  2013 + }
  2014 + else
  2015 + {
1889 2016 // Create the DISCO server
1890 2017 $disco = new SOAP_DISCO_Server($server, $this->namespace);
1891 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 2021 echo $disco->getWSDL();
1895   - } else {
  2022 + }
  2023 + else
  2024 + {
1896 2025 echo $disco->getDISCO();
1897 2026 }
1898 2027 }
... ... @@ -1901,16 +2030,15 @@ class KTWebService
1901 2030 function __dispatch($methodname)
1902 2031 {
1903 2032 if (isset($this->__dispatch_map[$methodname]))
1904   - return $this->__dispatch_map[$methodname];
  2033 + {
  2034 + return $this->__dispatch_map[$methodname];
  2035 + }
1905 2036 return NULL;
1906 2037 }
1907 2038  
1908 2039 }
1909 2040  
1910   -
1911   -
1912 2041 $webservice = new KTWebService();
1913 2042 $webservice->run();
1914 2043  
1915   -
1916 2044 ?>
1917 2045 \ No newline at end of file
... ...