38 require_once __DIR__ .
'/../lib/nusoap.php';
39 require_once __DIR__ .
'/../include/inc.soap_functions.php';
47 define(
'SERVICE_NAME',
'ILIASSoapWebservice');
48 define(
'SERVICE_NAMESPACE',
'urn:ilUserAdministration');
49 define(
'SERVICE_STYLE',
'rpc');
50 define(
'SERVICE_USE',
'encoded');
52 $this->
server->decode_utf8 =
false;
53 $this->
server->class =
"ilSoapFunctions";
60 $this->registerMethods();
65 $postdata = file_get_contents(
"php://input");
66 $this->
server->service($postdata);
72 $this->
server->configureWSDL(SERVICE_NAME, SERVICE_NAMESPACE);
73 $internal_path = $setting->
get(
'soap_internal_wsdl_path',
'');
75 $this->
server->addInternalPort(SERVICE_NAME, $internal_path);
79 private function registerMethods():
void 82 $this->
server->wsdl->addComplexType(
89 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:int[]')),
93 $this->
server->wsdl->addComplexType(
100 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:string[]')),
104 $this->
server->wsdl->addComplexType(
111 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:double[]')),
120 array(
'client' =>
'xsd:string',
121 'username' =>
'xsd:string',
122 'password' =>
'xsd:string' 124 array(
'sid' =>
'xsd:string'),
126 SERVICE_NAMESPACE .
'#login',
129 'ILIAS login function' 135 array(
'sid' =>
'xsd:string'),
136 array(
'success' =>
'xsd:boolean'),
138 SERVICE_NAMESPACE .
'#logout',
141 'ILIAS logout function' 144 $this->
server->wsdl->addComplexType(
150 array(
'usr_id' => array(
'name' =>
'usr_id',
'type' =>
'xsd:int'),
151 'login' => array(
'name' =>
'login',
'type' =>
'xsd:string'),
152 'passwd' => array(
'name' =>
'passwd',
'type' =>
'xsd:string'),
153 'firstname' => array(
'name' =>
'firstname',
'type' =>
'xsd:string'),
154 'lastname' => array(
'name' =>
'lastname',
'type' =>
'xsd:string'),
155 'title' => array(
'name' =>
'title',
'type' =>
'xsd:string'),
156 'gender' => array(
'name' =>
'gender',
'type' =>
'xsd:string'),
157 'email' => array(
'name' =>
'email',
'type' =>
'xsd:string'),
158 'second_email' => array(
'name' =>
'second_email',
'type' =>
'xsd:string'),
159 'institution' => array(
'name' =>
'institution',
'type' =>
'xsd:string'),
160 'street' => array(
'name' =>
'street',
'type' =>
'xsd:string'),
161 'city' => array(
'name' =>
'city',
'type' =>
'xsd:string'),
162 'zipcode' => array(
'name' =>
'zipcode',
'type' =>
'xsd:string'),
163 'country' => array(
'name' =>
'country',
'type' =>
'xsd:string'),
164 'phone_office' => array(
'name' =>
'phone_office',
'type' =>
'xsd:string'),
165 'last_login' => array(
'name' =>
'last_login',
'type' =>
'xsd:string'),
166 'last_update' => array(
'name' =>
'last_update',
'type' =>
'xsd:string'),
167 'create_date' => array(
'name' =>
'create_date',
'type' =>
'xsd:string'),
168 'hobby' => array(
'name' =>
'hobby',
'type' =>
'xsd:string'),
169 'department' => array(
'name' =>
'department',
'type' =>
'xsd:string'),
170 'phone_home' => array(
'name' =>
'phone_home',
'type' =>
'xsd:string'),
171 'phone_mobile' => array(
'name' =>
'phone_mobile',
'type' =>
'xsd:string'),
172 'fax' => array(
'name' =>
'fax',
'type' =>
'xsd:string'),
173 'time_limit_owner' => array(
'name' =>
'time_limit_owner',
'type' =>
'xsd:int'),
174 'time_limit_unlimited' => array(
'name' =>
'time_limit_unlimited',
'type' =>
'xsd:int'),
175 'time_limit_from' => array(
'name' =>
'time_limit_from',
'type' =>
'xsd:int'),
176 'time_limit_until' => array(
'name' =>
'time_limit_until',
'type' =>
'xsd:int'),
177 'time_limit_message' => array(
'name' =>
'time_limit_message',
'type' =>
'xsd:int'),
178 'referral_comment' => array(
'name' =>
'referral_comment',
'type' =>
'xsd:string'),
179 'matriculation' => array(
'name' =>
'matriculation',
'type' =>
'xsd:string'),
180 'active' => array(
'name' =>
'active',
'type' =>
'xsd:int'),
181 'accepted_agreement' => array(
'name' =>
'accepted_agreement',
'type' =>
'xsd:boolean'),
182 'approve_date' => array(
'name' =>
'approve_date',
'type' =>
'xsd:string'),
183 'user_skin' => array(
'name' =>
'user_skin',
'type' =>
'xsd:string'),
184 'user_style' => array(
'name' =>
'user_style',
'type' =>
'xsd:string'),
185 'user_language' => array(
'name' =>
'user_language',
'type' =>
'xsd:string'),
186 'import_id' => array(
'name' =>
'import_id',
'type' =>
'xsd:string')
193 array(
'sid' =>
'xsd:string',
194 'user_name' =>
'xsd:string' 196 array(
'usr_id' =>
'xsd:int'),
198 SERVICE_NAMESPACE .
'#lookupUser',
201 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.' 208 array(
'sid' =>
'xsd:string',
209 'target_id' =>
'xsd:int',
210 'crs_xml' =>
'xsd:string' 212 array(
'course_id' =>
'xsd:int'),
214 SERVICE_NAMESPACE .
'#addCourse',
217 'ILIAS addCourse(). Course import. See ' .
218 'components/ILIAS/Export/xml/SchemaValidation/ilias_ws_crs_11_0.xsd ' .
219 'for details about course xml structure' 225 array(
'sid' =>
'xsd:string',
226 'course_id' =>
'xsd:int' 228 array(
'success' =>
'xsd:boolean'),
230 SERVICE_NAMESPACE .
'#deleteCourse',
233 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in ' .
234 ' the ILIAS administration. ' 238 AsyncTaskManager::CMD_START_WORKER,
239 array(
'sid' =>
'xsd:string'),
240 array(
'success' =>
'xsd:boolean'),
242 SERVICE_NAMESPACE .
'#' . AsyncTaskManager::CMD_START_WORKER,
245 'ILIAS ' . AsyncTaskManager::CMD_START_WORKER .
'().' 250 'assignCourseMember',
251 array(
'sid' =>
'xsd:string',
252 'course_id' =>
'xsd:int',
253 'user_id' =>
'xsd:int',
254 'type' =>
'xsd:string' 256 array(
'success' =>
'xsd:boolean'),
258 SERVICE_NAMESPACE .
'#assignCourseMember',
261 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"' 266 'excludeCourseMember',
267 array(
'sid' =>
'xsd:string',
268 'course_id' =>
'xsd:int',
269 'user_id' =>
'xsd:int' 271 array(
'success' =>
'xsd:boolean'),
273 SERVICE_NAMESPACE .
'#excludeCourseMember',
276 'ILIAS excludeCourseMember(). Excludes an user from an existing course.' 281 'isAssignedToCourse',
282 array(
'sid' =>
'xsd:string',
283 'course_id' =>
'xsd:int',
284 'user_id' =>
'xsd:int' 286 array(
'role' =>
'xsd:int'),
288 SERVICE_NAMESPACE .
'#isAssignedToCourse',
291 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. ' .
292 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor' 298 array(
'sid' =>
'xsd:string',
299 'course_id' =>
'xsd:int' 301 array(
'xml' =>
'xsd:string'),
303 SERVICE_NAMESPACE .
'#getCourseXML',
306 'ILIAS getCourseXML(). Get a xml description of a specific course.' 312 array(
'sid' =>
'xsd:string',
313 'course_id' =>
'xsd:int',
314 'xml' =>
'xsd:string' 316 array(
'success' =>
'xsd:boolean'),
318 SERVICE_NAMESPACE .
'#updateCourse',
321 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a ' .
322 'given xml description' 327 'getObjIdByImportId',
328 array(
'sid' =>
'xsd:string',
329 'import_id' =>
'xsd:string' 331 array(
'obj_id' =>
'xsd:int'),
333 SERVICE_NAMESPACE .
'#getCourseIdByImportId',
336 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.' 341 'getRefIdsByImportId',
342 array(
'sid' =>
'xsd:string',
343 'import_id' =>
'xsd:string' 345 array(
'ref_ids' =>
'tns:intArray'),
347 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
350 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.' 356 array(
'sid' =>
'xsd:string',
357 'obj_id' =>
'xsd:string' 359 array(
'ref_ids' =>
'tns:intArray'),
361 SERVICE_NAMESPACE .
'#getRefIdsByObjId',
364 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.' 369 'getObjectByReference',
370 array(
'sid' =>
'xsd:string',
371 'reference_id' =>
'xsd:int',
372 'user_id' =>
'xsd:int' 374 array(
'object_xml' =>
'xsd:string'),
376 SERVICE_NAMESPACE .
'#getObjectByReference',
379 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, ' .
380 'this methods also checks the permissions of that user on the object.' 385 array(
'sid' =>
'xsd:string',
386 'title' =>
'xsd:string',
387 'user_id' =>
'xsd:int' 389 array(
'object_xml' =>
'xsd:string'),
391 SERVICE_NAMESPACE .
'#getObjectsByTitle',
394 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. ' .
395 'If a user id is given this method also checks the permissions of that user on the object.' 400 array(
'sid' =>
'xsd:string',
401 'types' =>
'tns:stringArray',
402 'key' =>
'xsd:string',
403 'combination' =>
'xsd:string',
404 'user_id' =>
'xsd:int' 406 array(
'object_xml' =>
'xsd:string'),
408 SERVICE_NAMESPACE .
'#searchObjects',
411 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" ' .
412 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); ' .
413 ' If an optional user id is given, this methods also return the permissions for that user ' .
414 'on the found objects' 419 array(
'sid' =>
'xsd:string',
420 'ref_id' =>
'xsd:int',
421 'types' =>
'tns:stringArray',
422 'user_id' =>
'xsd:int' 424 array(
'object_xml' =>
'xsd:string'),
426 SERVICE_NAMESPACE .
'#getTreeChilds',
429 'ILIAS getTreeChilds(): Get all child objects of a given object.' .
430 'Choose array of types to filter the output. Choose empty type array to receive all object types' 435 array(
'sid' =>
'xsd:string',
436 'ref_id' =>
'xsd:int',
437 'types' =>
'tns:stringArray',
438 'user_id' =>
'xsd:int' 440 array(
'object_xml' =>
'xsd:string'),
442 SERVICE_NAMESPACE .
'#getXMLTree',
445 'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.' 450 array(
'sid' =>
'xsd:string',
451 'target_id' =>
'xsd:int',
452 'object_xml' =>
'xsd:string' 454 array(
'ref_id' =>
'xsd:int'),
456 SERVICE_NAMESPACE .
'#addObject',
459 'ILIAS addObject. Create new object based on xml description under a given node ' .
460 '("category,course,group or folder). Return created reference id of the new object.' 465 array(
'sid' =>
'xsd:string',
466 'object_xml' =>
'xsd:string' 468 array(
'success' =>
'xsd:boolean'),
470 SERVICE_NAMESPACE .
'#updateObjects',
473 'ILIAS updateObjects. Update object data (title,description,owner)' 478 array(
'sid' =>
'xsd:string',
479 'source_id' =>
'xsd:int',
480 'target_id' =>
'xsd:int' 482 array(
'ref_id' =>
'xsd:int'),
484 SERVICE_NAMESPACE .
'#addReference',
487 'ILIAS addReference. Create new link of given object to new object. Return the new reference id' 492 array(
'sid' =>
'xsd:string',
493 'reference_id' =>
'xsd:int' 495 array(
'success' =>
'xsd:boolean'),
497 SERVICE_NAMESPACE .
'#deleteObject',
500 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ' 504 'removeFromSystemByImportId',
505 array(
'sid' =>
'xsd:string',
506 'import_id' =>
'xsd:string' 508 array(
'success' =>
'xsd:boolean'),
510 SERVICE_NAMESPACE .
'#removeFromSystemByImportId',
513 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the ' .
514 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use ' .
515 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.' 520 array(
'sid' =>
'xsd:string',
521 'user_id' =>
'xsd:int',
522 'role_id' =>
'xsd:int' 524 array(
'success' =>
'xsd:boolean'),
526 SERVICE_NAMESPACE .
'#addUserRoleEntry',
529 'ILIAS addUserRoleEntry. Assign user to role.' 533 'deleteUserRoleEntry',
534 array(
'sid' =>
'xsd:string',
535 'user_id' =>
'xsd:int',
536 'role_id' =>
'xsd:int' 538 array(
'success' =>
'xsd:boolean'),
540 SERVICE_NAMESPACE .
'#deleteUserRoleEntry',
543 'ILIAS deleteUserRoleEntry. Deassign user from role.' 547 $this->
server->wsdl->addComplexType(
553 array(
'ops_id' => array(
'name' =>
'ops_id',
556 'operation' => array(
'name' =>
'operation',
557 'type' =>
'xsd:string' 559 'description' => array(
'name' =>
'description',
560 'type' =>
'xsd:string' 565 $this->
server->wsdl->addComplexType(
572 array(array(
'ref' =>
'SOAP-ENC:arrayType',
573 'wsdl:arrayType' =>
'tns:ilOperation[]' 580 array(
'sid' =>
'xsd:string'),
581 array(
'operations' =>
'tns:ilOperations'),
583 SERVICE_NAMESPACE .
'#getOperations',
586 'ILIAS getOperations(): get complete set of RBAC operations.' 591 array(
'sid' =>
'xsd:string',
592 'ref_id' =>
'xsd:int',
593 'role_id' =>
'xsd:int' 595 array(
'success' =>
'xsd:boolean'),
597 SERVICE_NAMESPACE .
'#revokePermissions',
600 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.' 603 $this->
server->wsdl->addComplexType(
610 array(array(
'ref' =>
'SOAP-ENC:arrayType',
611 'wsdl:arrayType' =>
'xsd:int[]' 619 array(
'sid' =>
'xsd:string',
620 'ref_id' =>
'xsd:int',
621 'role_id' =>
'xsd:int',
622 'operations' =>
'tns:intArray' 624 array(
'success' =>
'xsd:boolean'),
626 SERVICE_NAMESPACE .
'#grantPermissions',
629 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. ' .
630 '(Substitutes existing permission settings)' 635 array(
'sid' =>
'xsd:string',
636 'ref_id' =>
'xsd:int' 638 array(
'role_xml' =>
'xsd:string'),
640 SERVICE_NAMESPACE .
'#getLocalRoles',
643 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.' 648 array(
'sid' =>
'xsd:string',
649 'user_id' =>
'xsd:int' 651 array(
'role_xml' =>
'xsd:string'),
653 SERVICE_NAMESPACE .
'#getLocalRoles',
656 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ' 661 array(
'sid' =>
'xsd:string',
662 'target_id' =>
'xsd:int',
663 'obj_xml' =>
'xsd:string' 665 array(
'role_ids' =>
'tns:intArray'),
667 SERVICE_NAMESPACE .
'#addRole',
670 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
671 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.' 676 array(
'sid' =>
'xsd:string',
677 'role_id' =>
'xsd:int' 679 array(
'success' =>
'xsd:boolean'),
681 SERVICE_NAMESPACE .
'#deleteRole',
684 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user' 688 'addRoleFromTemplate',
689 array(
'sid' =>
'xsd:string',
690 'target_id' =>
'xsd:int',
691 'obj_xml' =>
'xsd:string',
692 'role_template_id' =>
'xsd:int' 694 array(
'role_ids' =>
'tns:intArray'),
696 SERVICE_NAMESPACE .
'#addRole',
699 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
700 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. ' .
701 'In addition to addRole the template permissions will be copied from the given role template' 705 'getObjectTreeOperations',
706 array(
'sid' =>
'xsd:string',
707 'ref_id' =>
'xsd:int',
708 'user_id' =>
'xsd:int' 710 array(
'operations' =>
'tns:ilOperations'),
712 SERVICE_NAMESPACE .
'#getPermissionsForObject',
715 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of ' .
716 'an object for a specific user. Returns array of granted operations or empty array' 721 array(
'sid' =>
'xsd:string',
722 'target_id' =>
'xsd:int',
723 'group_xml' =>
'xsd:string' 725 array(
'ref_id' =>
'xsd:int'),
727 SERVICE_NAMESPACE .
'#addGroup',
730 'ILIAS addGroup(): Add grop according to valid group XML ' .
731 '@See ilias_group_0_1.dtd' 736 array(
'sid' =>
'xsd:string',
737 'title' =>
'xsd:string' 739 array(
'exists' =>
'xsd:boolean'),
741 SERVICE_NAMESPACE .
'#groupExists',
744 'ILIAS addGroup(): Check if group with given name exists. ' 750 array(
'sid' =>
'xsd:string',
751 'ref_id' =>
'xsd:int' 753 array(
'group_xml' =>
'xsd:string'),
755 SERVICE_NAMESPACE .
'#getGroup',
758 'ILIAS getGroup(): get xml description of grouip with given reference id.' 764 array(
'sid' =>
'xsd:string',
765 'group_id' =>
'xsd:int',
766 'user_id' =>
'xsd:int',
767 'type' =>
'xsd:string' 769 array(
'success' =>
'xsd:boolean'),
771 SERVICE_NAMESPACE .
'#assignGroupMember',
774 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"' 779 'excludeGroupMember',
780 array(
'sid' =>
'xsd:string',
781 'group_id' =>
'xsd:int',
782 'user_id' =>
'xsd:int' 784 array(
'success' =>
'xsd:boolean'),
786 SERVICE_NAMESPACE .
'#excludeGroupMember',
789 'ILIAS excludeGroupMember(). Excludes an user from an existing group.' 795 array(
'sid' =>
'xsd:string',
796 'group_id' =>
'xsd:int',
797 'user_id' =>
'xsd:int' 799 array(
'role' =>
'xsd:int'),
801 SERVICE_NAMESPACE .
'#isAssignedToGroup',
804 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. ' .
805 'Returns 0 => not assigned, 1 => group admin, 2 => group member' 812 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
813 array(
'new_ref_id' =>
'xsd:int'),
815 SERVICE_NAMESPACE .
'#ilClone',
818 'ILIAS ilClone(): Only for internal usage.' .
819 'Syntax, parameters may change in future releases. ' 823 'ilCloneDependencies',
824 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
825 array(
'success' =>
'xsd:boolean'),
827 SERVICE_NAMESPACE .
'#ilCloneDependencies',
830 'ILIAS ilCloneDependencies(): Only for internal usage.' .
831 'Syntax, parameters may change in future releases. ' 837 array(
'sid' =>
'xsd:string',
838 'active_id' =>
'xsd:long',
839 'question_id' =>
'xsd:long',
841 'solution' =>
'tns:stringArray' 843 array(
'status' =>
'xsd:boolean'),
845 SERVICE_NAMESPACE .
'#saveQuestion',
848 'ILIAS saveQuestion: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test.' 852 'saveQuestionSolution',
853 array(
'sid' =>
'xsd:string',
854 'active_id' =>
'xsd:long',
855 'question_id' =>
'xsd:long',
857 'solution' =>
'xsd:string' 859 array(
'status' =>
'xsd:string'),
861 SERVICE_NAMESPACE .
'#saveQuestionSolution',
864 'ILIAS saveQuestionSolution: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test. The solution has to be an XML string which contains <values><value>VALUE</value><value>VALUE</value><points>POINTS</points>...</values> where the triplet (value,value,points) can repeat n times. The result string is either TRUE or it contains an error message.' 868 'getQuestionSolution',
869 array(
'sid' =>
'xsd:string',
870 'active_id' =>
'xsd:long',
871 'question_id' =>
'xsd:int',
874 array(
'solution' =>
'tns:stringArray'),
876 SERVICE_NAMESPACE .
'#getQuestionSolution',
879 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.' 884 array(
'sid' =>
'xsd:string',
885 'active_id' =>
'xsd:long' 887 array(
'userdata' =>
'tns:stringArray'),
889 SERVICE_NAMESPACE .
'#getTestUserData',
892 'ILIAS getTestUserData: Typically called from external assessment questions to retrieve data of the active user. The returned string array values are fullname, title, firstname, lastname, login.' 896 'getPositionOfQuestion',
897 array(
'sid' =>
'xsd:string',
898 'active_id' =>
'xsd:long',
899 'question_id' =>
'xsd:int',
902 array(
'position' =>
'xsd:int'),
904 SERVICE_NAMESPACE .
'#getPositionOfQuestion',
907 'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.' 911 'getPreviousReachedPoints',
912 array(
'sid' =>
'xsd:string',
913 'active_id' =>
'xsd:long',
914 'question_id' =>
'xsd:int',
917 array(
'position' =>
'tns:doubleArray'),
919 SERVICE_NAMESPACE .
'#getPreviousReachedPoints',
922 'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.' 926 'getNrOfQuestionsInPass',
927 array(
'sid' =>
'xsd:string',
928 'active_id' =>
'xsd:long',
931 array(
'count' =>
'xsd:int'),
933 SERVICE_NAMESPACE .
'#getNrOfQuestionsInPass',
936 'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.' 940 'getStructureObjects',
941 array(
'sid' =>
'xsd:string',
942 'ref_id' =>
'xsd:int' 944 array(
'xml' =>
'xsd:string'),
946 SERVICE_NAMESPACE .
'#getStructureObjects',
949 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)' 955 array(
'sid' =>
'xsd:string',
956 'folder_id' =>
'xsd:int',
957 'usr_xml' =>
'xsd:string',
958 'conflict_rule' =>
'xsd:int',
959 'send_account_mail' =>
'xsd:int' 961 array(
'protocol' =>
'xsd:string'),
963 SERVICE_NAMESPACE .
'#importUsers',
966 'ILIAS import users into folder id, which should be ref_id of folder or user folder (-1:System user folder, 0: checks access at user level, otherwise refid): conflict_rule: IL_FAIL_ON_CONFLICT = 1, IL_UPDATE_ON_CONFLICT = 2, IL_IGNORE_ON_CONFLICT = 3. The Return-Value is a protocol with the columns userid, login, action, message, following xmlresultset dtd. Send Account Mail = 0 deactivates sending a mail to each user, 1 activates it' 971 array(
'sid' =>
'xsd:string',
972 'role_type' =>
'xsd:string',
975 array(
'role_xml' =>
'xsd:string'),
977 SERVICE_NAMESPACE .
'#getRoles',
980 'ILIAS getRoles():if id equals -1, get all roles specified by type (global|local|user|user_login|template or empty), if type is empty all roles with all types are delivered, if id > -1 and role_type <> user or user_login, delivers all roles which belong to a repository object with specified ref_id, if roletype is user a numeric id is interpreted as userid, if roletype is user_login it is interpreted as login,if roletype is template all role templates will be listed' 984 'getUsersForContainer',
985 array(
'sid' =>
'xsd:string',
986 'ref_id' =>
'xsd:int',
987 'attach_roles' =>
'xsd:int',
988 'active' =>
'xsd:int' 990 array(
'user_xml' =>
'xsd:string'),
992 SERVICE_NAMESPACE .
'#getUsersForContainer',
995 'ILIAS getUsersForContainer(): get all users of a specific ref_id, which can be crs, group, category or user folder (value: -1). Choose if all roles of a user should be attached (1) or not (0). set active to -1 to get all, 0, to get inactive users only, 1 to get active users only' 1000 array(
'sid' =>
'xsd:string',
1001 'role_id' =>
'xsd:int',
1002 'attach_roles' =>
'xsd:int',
1003 'active' =>
'xsd:int' 1005 array(
'user_xml' =>
'xsd:string'),
1007 SERVICE_NAMESPACE .
'#getUsersForRole',
1010 'ILIAS getUsersForRole(): get all users of a role with specified id, specify attach_roles to 1, to attach all role assignmnents; specify active: 1, to import active only, 0: inactive only, -1: both' 1015 array(
'sid' =>
'xsd:string',
1016 'key_fields' =>
'tns:stringArray',
1017 'query_operator' =>
'xsd:string',
1018 'key_values' =>
'tns:stringArray',
1019 'attach_roles' =>
'xsd:int',
1020 'active' =>
'xsd:int' 1022 array(
'user_xml' =>
'xsd:string'),
1024 SERVICE_NAMESPACE .
'#searchUsers',
1027 'ILIAS searchUser(): get all users, which match a query, consisting of the keyfields, matched with values of the field values, concatenated with the logical query operator. Specify attach_roles to 1, to attach all role assignmnents; specify active: 1, to import active only, 0: inactive only, -1: both' 1034 array(
'sid' =>
'xsd:string'),
1035 array(
'status' =>
'xsd:boolean'),
1037 SERVICE_NAMESPACE .
'#hasNewMail',
1040 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.' 1045 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int',
"attachment_mode" =>
"xsd:int"),
1046 array(
'exercisexml' =>
'xsd:string'),
1048 SERVICE_NAMESPACE .
'#getExerciseXML',
1051 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1056 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1057 array(
'refid' =>
'xsd:int'),
1059 SERVICE_NAMESPACE .
'#addExercise',
1062 'ILIAS addExercise(): create exercise, put it into target (ref_id) and update exercise properties from xml (see ilias_exercise_3_8.dtd for details). Obj_id must not be set!' 1067 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1068 array(
'success' =>
'xsd:boolean'),
1070 SERVICE_NAMESPACE .
'#updateExercise',
1073 'ILIAS updateExercise():update existing exercise, update exercise properties from xml (see ilias_exercise_3_8.dtd for details). obj_id in xml must match according obj id of refid.!' 1078 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'attachment_mode' =>
'xsd:int'),
1079 array(
'filexml' =>
'xsd:string'),
1081 SERVICE_NAMESPACE .
'#getFileXML',
1084 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1089 array(
'sid' =>
'xsd:string',
'target_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1090 array(
'refid' =>
'xsd:int'),
1092 SERVICE_NAMESPACE .
'#addFile',
1095 'ILIAS addFile(): create file, put it into target (ref_id) and update file properties from xml (see ilias_file_3_8.dtd for details). Obj_id must not be set!' 1100 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1101 array(
'success' =>
'xsd:boolean'),
1103 SERVICE_NAMESPACE .
'#updateFile',
1106 'ILIAS updateFile():update existing file, update file properties from xml (see ilias_file_3_8.dtd for details). obj_id in xml must match according obj id of refid.!' 1111 array(
'sid' =>
'xsd:string',
'user_ids' =>
'tns:intArray',
'attach_roles' =>
'xsd:int'),
1112 array(
'xml' =>
'xsd:string'),
1114 SERVICE_NAMESPACE .
'#resolveUsers',
1117 'ILIAS getUserXML(): get xml records for user ids, e.g. retrieved vom members of course xml. Returns user xml dtds. ids are numeric ids of user' 1122 'getObjIdsByRefIds',
1123 array(
'sid' =>
'xsd:string',
1124 'ref_ids' =>
'tns:intArray' 1126 array(
'obj_ids' =>
'tns:intArray'),
1128 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
1131 'ILIAS getObjIdsForRefIds: Returns a array of object ids which match the references id, given by a comma seperated string. Returns an array of ref ids, in the same order as object ids. Therefore, there might by duplicates' 1136 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1137 array(
'success' =>
'xsd:boolean'),
1139 SERVICE_NAMESPACE .
'#updateGroup',
1142 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).' 1146 'getIMSManifestXML',
1147 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1148 array(
'xml' =>
'xsd:string'),
1150 SERVICE_NAMESPACE .
'#getIMSManifestXML',
1153 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid' 1157 'hasSCORMCertificate',
1158 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'usr_id' =>
'xsd:int'),
1159 array(
'success' =>
'xsd:boolean'),
1161 SERVICE_NAMESPACE .
'#hasSCORMCertificate',
1164 'ILIAS hasSCORMCertificate(): returns true if a certficate is available for a user referred by usr_id in a SCORM learning module referred by ref_id' 1168 'getSCORMCompletionStatus',
1169 array(
'sid' =>
'xsd:string',
'usr_id' =>
'xsd:int',
'ref_id' =>
'xsd:int'),
1170 array(
'status' =>
'xsd:string'),
1172 SERVICE_NAMESPACE .
'#getSCORMCompletionStatus',
1175 'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module' 1180 array(
'sid' =>
'xsd:string',
'xml' =>
'xsd:string'),
1181 array(
'xml' =>
'xsd:int'),
1183 SERVICE_NAMESPACE .
'#copyObject',
1186 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.' 1191 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'target_id' =>
'xsd:int'),
1192 array(
'result' =>
'xsd:boolean'),
1194 SERVICE_NAMESPACE .
'#moveObject',
1197 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.' 1202 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'sum_only' =>
'xsd:boolean'),
1203 array(
'xml' =>
'xsd:string'),
1205 SERVICE_NAMESPACE .
'#getTestResults',
1208 'ILIAS getTestResults(): returns XMLResultSet with 1209 sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points 1210 sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points' 1214 'removeTestResults',
1216 'sid' =>
'xsd:string',
1217 'ref_id' =>
'xsd:int',
1218 'user_ids' =>
'tns:intArray' 1220 array(
'success' =>
'xsd:boolean'),
1222 SERVICE_NAMESPACE .
'#removeTestResults',
1225 'ILIAS removeTestResults(): remove test results for the chosen users' 1229 'getCoursesForUser',
1230 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1231 array(
'xml' =>
'xsd:string'),
1233 SERVICE_NAMESPACE .
'#getCoursesForUser',
1236 'ILIAS getTestResults(): returns XMLResultSet with columns ref_id, course xml. $parameters has to contain a column user_id and a column status. Status is a logical AND combined value of (MEMBER = 1, TUTOR = 2, ADMIN = 4, OWNER = 8) and determines which courses should be returned.' 1241 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1242 array(
'xml' =>
'xsd:string'),
1244 SERVICE_NAMESPACE .
'#getGroupsForUser',
1247 'ILIAS getTestResults(): returns XMLResultSet with columns ref_id, group xml. $parameters has to contain a column user_id and a column status. Status is a logical AND combined value of (MEMBER = 1, TUTOR = 2, OWNER = 4) and determines which groups should be returned.' 1252 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1253 array(
'xml' =>
'xsd:string'),
1255 SERVICE_NAMESPACE .
'#getPathForRefId',
1258 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.' 1263 array(
'sid' =>
'xsd:string',
1264 'key' =>
'xsd:string',
1265 'combination' =>
'xsd:string',
1266 'role_type' =>
'xsd:string' 1268 array(
'xml' =>
'xsd:string'),
1270 SERVICE_NAMESPACE .
'#searchRoles',
1273 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.' 1277 'getInstallationInfoXML',
1279 array(
'xml' =>
'xsd:string'),
1281 SERVICE_NAMESPACE .
'#getInstallationInfoXML',
1284 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd' 1289 array(
'clientid' =>
'xsd:string'),
1290 array(
'xml' =>
'xsd:string'),
1292 SERVICE_NAMESPACE .
'#getClientInfoXML',
1295 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id' 1299 'getSkillCompletionDateForTriggerRefId',
1300 array(
'sid' =>
'xsd:string',
1301 'user_id' =>
'xsd:string',
1302 'ref_id' =>
'xsd:string' 1304 array(
'dates' =>
'xsd:string'),
1306 SERVICE_NAMESPACE .
'#getSkillCompletionDateForTriggerRefId',
1309 'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.' 1313 'checkSkillUserCertificateForTriggerRefId',
1314 array(
'sid' =>
'xsd:string',
1315 'user_id' =>
'xsd:string',
1316 'ref_id' =>
'xsd:string' 1318 array(
'have_certificates' =>
'xsd:string'),
1320 SERVICE_NAMESPACE .
'#checkSkillUserCertificateForTriggerRefId',
1323 'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.' 1327 'getSkillTriggerOfAllCertificates',
1328 array(
'sid' =>
'xsd:string',
1329 'user_id' =>
'xsd:string' 1331 array(
'certificate_triggers' =>
'xsd:string'),
1333 SERVICE_NAMESPACE .
'#getSkillTriggerOfAllCertificates',
1336 'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.' 1341 array(
'sid' =>
'xsd:string'),
1342 array(
'usr_id' =>
'xsd:int'),
1344 SERVICE_NAMESPACE .
'#getUserIdBySid',
1347 'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid' 1351 'deleteExpiredDualOptInUserObjects',
1352 array(
'sid' =>
'xsd:string',
1353 'usr_id' =>
'xsd:int' 1355 array(
'status' =>
'xsd:boolean'),
1357 SERVICE_NAMESPACE .
'#deleteExpiredDualOptInUserObjects',
1360 'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method' 1365 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int'),
1366 array(
'weblinkxml' =>
'xsd:string'),
1368 SERVICE_NAMESPACE .
'#readWebLink',
1371 'ILIAS readWebLink(): returns xml description of a weblink container.' 1376 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1377 array(
'refid' =>
'xsd:int'),
1379 SERVICE_NAMESPACE .
'#createWebLink',
1382 'ILIAS createWebLink(): create web link container, put it into target (ref_id) and update weblink container from xml (see ilias_weblink_4_0.dtd for details). Obj_id must not be set!' 1387 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1388 array(
'success' =>
'xsd:boolean'),
1390 SERVICE_NAMESPACE .
'#updateWebLink',
1393 'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).' 1398 'getLearningProgressChanges',
1399 array(
'sid' =>
'xsd:string',
1400 'timestamp' =>
'xsd:string',
1401 'include_ref_ids' =>
'xsd:boolean',
1402 'type_filter' =>
'tns:stringArray' 1404 array(
'lp_data' =>
'xsd:string'),
1406 SERVICE_NAMESPACE .
'#getLearningProgressChanges',
1409 'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.' 1416 'sid' =>
'xsd:string',
1417 'ref_ids' =>
'tns:intArray',
1418 'usr_ids' =>
'tns:intArray',
1419 'type_filter' =>
'tns:stringArray',
1420 'progress_filter' =>
'tns:intArray' 1422 array(
'status' =>
'xsd:boolean'),
1424 SERVICE_NAMESPACE .
'#deleteProgress',
1427 'Delete user progress data of objects. ' 1433 'sid' =>
'xsd:string',
1434 'ref_id' =>
'xsd:int',
1435 'progress_filter' =>
'tns:intArray' 1437 array(
'user_results' =>
'xsd:string'),
1439 SERVICE_NAMESPACE .
'#getProgressInfo',
1442 'Get object learning progress information' 1446 'exportDataCollectionContent',
1448 'sid' =>
'xsd:string',
1449 'ref_id' =>
'xsd:int',
1450 'table_id' =>
'xsd:int',
1451 'format' =>
'xsd:string',
1452 'filepath' =>
'xsd:string' 1454 array(
'export_path' =>
'xsd:string'),
1456 SERVICE_NAMESPACE .
'#exportDataCollectionTableContent',
1459 'Generate DataCollectionContent Export' 1463 'processBackgroundTask',
1465 'sid' =>
'xsd:string',
1466 'task_id' =>
'xsd:int' 1468 array(
'status' =>
'xsd:boolean'),
1470 SERVICE_NAMESPACE .
'#processBackgroundTask',
1473 'Process task in background' 1493 foreach (
$f as $function) {
1495 $function->getName(),
1496 $function->getInputParams(),
1497 $function->getOutputParams(),
1499 SERVICE_NAMESPACE .
'#orgu',
1502 $function->getDocumentation()
1508 if (isset(
$_GET[
'client_id'])) {
1526 $component_factory = $DIC[
'component.factory'];
1527 $soapHook =
new ilSoapHook($component_factory);
1528 foreach ($soapHook->getWsdlTypes() as $type) {
1529 $this->
server->wsdl->addComplexType(
1531 $type->getTypeClass(),
1532 $type->getPhpType(),
1533 $type->getCompositor(),
1534 $type->getRestrictionBase(),
1535 $type->getElements(),
1536 $type->getAttributes(),
1537 $type->getArrayType()
1540 foreach ($soapHook->getSoapMethods() as $method) {
1543 $method->getInputParams(),
1544 $method->getOutputParams(),
1545 $method->getServiceNamespace(),
1546 $method->getServiceNamespace() .
'#' . $method->getName(),
1547 $method->getServiceStyle(),
1548 $method->getServiceUse(),
1549 $method->getDocumentation()
Class AddUserIdToPositionInOrgUnit.
get(string $a_keyword, ?string $a_default_value=null)
get setting
handleSoapPlugins()
Register any methods and types of SOAP plugins to the SOAP server.
Class EmployeePositionId.
Class AddUserIdToPositionInOrgUnit.
const CONTEXT_SOAP_NO_AUTH
__construct(bool $a_use_wsdl=true)
server()
description: > This example shows how a Progress Bar can be rendered and updated by the server...
static initILIAS()
ilias initialisation
Class UserIdsOfPositionAndOrgUnit.
Class SuperiorPositionId.
enableWSDL(ilSetting $setting)
static init(string $a_type)
Init context by type.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...