24 require_once(
'./libs/composer/vendor/autoload.php');
39 include_once
'./webservice/soap/lib/nusoap.php';
40 include_once
'./webservice/soap/include/inc.soap_functions.php';
41 require_once(
'./Services/WebServices/SOAP/classes/class.ilSoapHook.php');
42 require_once(
'./Services/Init/classes/class.ilInitialisation.php');
50 define(
'SERVICE_NAME',
'ILIASSoapWebservice');
51 define(
'SERVICE_NAMESPACE',
'urn:ilUserAdministration');
52 define(
'SERVICE_STYLE',
'rpc');
53 define(
'SERVICE_USE',
'encoded');
55 $this->server->decode_utf8 =
false;
56 $this->server->class =
"ilSoapFunctions";
62 $this->registerMethods();
67 $postdata = file_get_contents(
"php://input");
68 $this->server->service($postdata);
74 $this->server->configureWSDL(SERVICE_NAME, SERVICE_NAMESPACE);
77 private function registerMethods():
void 80 $this->server->wsdl->addComplexType(
87 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:int[]')),
91 $this->server->wsdl->addComplexType(
98 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:string[]')),
102 $this->server->wsdl->addComplexType(
109 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:double[]')),
116 $this->server->register(
118 array(
'client' =>
'xsd:string',
119 'username' =>
'xsd:string',
120 'password' =>
'xsd:string' 122 array(
'sid' =>
'xsd:string'),
124 SERVICE_NAMESPACE .
'#login',
127 'ILIAS login function' 131 $this->server->register(
133 array(
'sid' =>
'xsd:string'),
134 array(
'success' =>
'xsd:boolean'),
136 SERVICE_NAMESPACE .
'#logout',
139 'ILIAS logout function' 142 $this->server->wsdl->addComplexType(
148 array(
'usr_id' => array(
'name' =>
'usr_id',
'type' =>
'xsd:int'),
149 'login' => array(
'name' =>
'login',
'type' =>
'xsd:string'),
150 'passwd' => array(
'name' =>
'passwd',
'type' =>
'xsd:string'),
151 'firstname' => array(
'name' =>
'firstname',
'type' =>
'xsd:string'),
152 'lastname' => array(
'name' =>
'lastname',
'type' =>
'xsd:string'),
153 'title' => array(
'name' =>
'title',
'type' =>
'xsd:string'),
154 'gender' => array(
'name' =>
'gender',
'type' =>
'xsd:string'),
155 'email' => array(
'name' =>
'email',
'type' =>
'xsd:string'),
156 'second_email' => array(
'name' =>
'second_email',
'type' =>
'xsd:string'),
157 'institution' => array(
'name' =>
'institution',
'type' =>
'xsd:string'),
158 'street' => array(
'name' =>
'street',
'type' =>
'xsd:string'),
159 'city' => array(
'name' =>
'city',
'type' =>
'xsd:string'),
160 'zipcode' => array(
'name' =>
'zipcode',
'type' =>
'xsd:string'),
161 'country' => array(
'name' =>
'country',
'type' =>
'xsd:string'),
162 'phone_office' => array(
'name' =>
'phone_office',
'type' =>
'xsd:string'),
163 'last_login' => array(
'name' =>
'last_login',
'type' =>
'xsd:string'),
164 'last_update' => array(
'name' =>
'last_update',
'type' =>
'xsd:string'),
165 'create_date' => array(
'name' =>
'create_date',
'type' =>
'xsd:string'),
166 'hobby' => array(
'name' =>
'hobby',
'type' =>
'xsd:string'),
167 'department' => array(
'name' =>
'department',
'type' =>
'xsd:string'),
168 'phone_home' => array(
'name' =>
'phone_home',
'type' =>
'xsd:string'),
169 'phone_mobile' => array(
'name' =>
'phone_mobile',
'type' =>
'xsd:string'),
170 'fax' => array(
'name' =>
'fax',
'type' =>
'xsd:string'),
171 'time_limit_owner' => array(
'name' =>
'time_limit_owner',
'type' =>
'xsd:int'),
172 'time_limit_unlimited' => array(
'name' =>
'time_limit_unlimited',
'type' =>
'xsd:int'),
173 'time_limit_from' => array(
'name' =>
'time_limit_from',
'type' =>
'xsd:int'),
174 'time_limit_until' => array(
'name' =>
'time_limit_until',
'type' =>
'xsd:int'),
175 'time_limit_message' => array(
'name' =>
'time_limit_message',
'type' =>
'xsd:int'),
176 'referral_comment' => array(
'name' =>
'referral_comment',
'type' =>
'xsd:string'),
177 'matriculation' => array(
'name' =>
'matriculation',
'type' =>
'xsd:string'),
178 'active' => array(
'name' =>
'active',
'type' =>
'xsd:int'),
179 'accepted_agreement' => array(
'name' =>
'accepted_agreement',
'type' =>
'xsd:boolean'),
180 'approve_date' => array(
'name' =>
'approve_date',
'type' =>
'xsd:string'),
181 'user_skin' => array(
'name' =>
'user_skin',
'type' =>
'xsd:string'),
182 'user_style' => array(
'name' =>
'user_style',
'type' =>
'xsd:string'),
183 'user_language' => array(
'name' =>
'user_language',
'type' =>
'xsd:string'),
184 'import_id' => array(
'name' =>
'import_id',
'type' =>
'xsd:string')
189 $this->server->register(
191 array(
'sid' =>
'xsd:string',
192 'user_name' =>
'xsd:string' 194 array(
'usr_id' =>
'xsd:int'),
196 SERVICE_NAMESPACE .
'#lookupUser',
199 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.' 204 $this->server->register(
206 array(
'sid' =>
'xsd:string',
207 'target_id' =>
'xsd:int',
208 'crs_xml' =>
'xsd:string' 210 array(
'course_id' =>
'xsd:int'),
212 SERVICE_NAMESPACE .
'#addCourse',
215 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure' 219 $this->server->register(
221 array(
'sid' =>
'xsd:string',
222 'course_id' =>
'xsd:int' 224 array(
'success' =>
'xsd:boolean'),
226 SERVICE_NAMESPACE .
'#deleteCourse',
229 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in ' .
230 ' the ILIAS administration. ' 233 $this->server->register(
234 AsyncTaskManager::CMD_START_WORKER,
235 array(
'sid' =>
'xsd:string'),
236 array(
'success' =>
'xsd:boolean'),
238 SERVICE_NAMESPACE .
'#' . AsyncTaskManager::CMD_START_WORKER,
241 'ILIAS ' . AsyncTaskManager::CMD_START_WORKER .
'().' 245 $this->server->register(
246 'assignCourseMember',
247 array(
'sid' =>
'xsd:string',
248 'course_id' =>
'xsd:int',
249 'user_id' =>
'xsd:int',
250 'type' =>
'xsd:string' 252 array(
'success' =>
'xsd:boolean'),
254 SERVICE_NAMESPACE .
'#assignCourseMember',
257 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"' 261 $this->server->register(
262 'excludeCourseMember',
263 array(
'sid' =>
'xsd:string',
264 'course_id' =>
'xsd:int',
265 'user_id' =>
'xsd:int' 267 array(
'success' =>
'xsd:boolean'),
269 SERVICE_NAMESPACE .
'#excludeCourseMember',
272 'ILIAS excludeCourseMember(). Excludes an user from an existing course.' 276 $this->server->register(
277 'isAssignedToCourse',
278 array(
'sid' =>
'xsd:string',
279 'course_id' =>
'xsd:int',
280 'user_id' =>
'xsd:int' 282 array(
'role' =>
'xsd:int'),
284 SERVICE_NAMESPACE .
'#isAssignedToCourse',
287 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. ' .
288 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor' 292 $this->server->register(
294 array(
'sid' =>
'xsd:string',
295 'course_id' =>
'xsd:int' 297 array(
'xml' =>
'xsd:string'),
299 SERVICE_NAMESPACE .
'#getCourseXML',
302 'ILIAS getCourseXML(). Get a xml description of a specific course.' 306 $this->server->register(
308 array(
'sid' =>
'xsd:string',
309 'course_id' =>
'xsd:int',
310 'xml' =>
'xsd:string' 312 array(
'success' =>
'xsd:boolean'),
314 SERVICE_NAMESPACE .
'#updateCourse',
317 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a ' .
318 'given xml description' 322 $this->server->register(
323 'getObjIdByImportId',
324 array(
'sid' =>
'xsd:string',
325 'import_id' =>
'xsd:string' 327 array(
'obj_id' =>
'xsd:int'),
329 SERVICE_NAMESPACE .
'#getCourseIdByImportId',
332 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.' 336 $this->server->register(
337 'getRefIdsByImportId',
338 array(
'sid' =>
'xsd:string',
339 'import_id' =>
'xsd:string' 341 array(
'ref_ids' =>
'tns:intArray'),
343 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
346 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.' 350 $this->server->register(
352 array(
'sid' =>
'xsd:string',
353 'obj_id' =>
'xsd:string' 355 array(
'ref_ids' =>
'tns:intArray'),
357 SERVICE_NAMESPACE .
'#getRefIdsByObjId',
360 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.' 364 $this->server->register(
365 'getObjectByReference',
366 array(
'sid' =>
'xsd:string',
367 'reference_id' =>
'xsd:int',
368 'user_id' =>
'xsd:int' 370 array(
'object_xml' =>
'xsd:string'),
372 SERVICE_NAMESPACE .
'#getObjectByReference',
375 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, ' .
376 'this methods also checks the permissions of that user on the object.' 379 $this->server->register(
381 array(
'sid' =>
'xsd:string',
382 'title' =>
'xsd:string',
383 'user_id' =>
'xsd:int' 385 array(
'object_xml' =>
'xsd:string'),
387 SERVICE_NAMESPACE .
'#getObjectsByTitle',
390 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. ' .
391 'If a user id is given this method also checks the permissions of that user on the object.' 394 $this->server->register(
396 array(
'sid' =>
'xsd:string',
397 'types' =>
'tns:stringArray',
398 'key' =>
'xsd:string',
399 'combination' =>
'xsd:string',
400 'user_id' =>
'xsd:int' 402 array(
'object_xml' =>
'xsd:string'),
404 SERVICE_NAMESPACE .
'#searchObjects',
407 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" ' .
408 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); ' .
409 ' If an optional user id is given, this methods also return the permissions for that user ' .
410 'on the found objects' 413 $this->server->register(
415 array(
'sid' =>
'xsd:string',
416 'ref_id' =>
'xsd:int',
417 'types' =>
'tns:stringArray',
418 'user_id' =>
'xsd:int' 420 array(
'object_xml' =>
'xsd:string'),
422 SERVICE_NAMESPACE .
'#getTreeChilds',
425 'ILIAS getTreeChilds(): Get all child objects of a given object.' .
426 'Choose array of types to filter the output. Choose empty type array to receive all object types' 429 $this->server->register(
431 array(
'sid' =>
'xsd:string',
432 'ref_id' =>
'xsd:int',
433 'types' =>
'tns:stringArray',
434 'user_id' =>
'xsd:int' 436 array(
'object_xml' =>
'xsd:string'),
438 SERVICE_NAMESPACE .
'#getXMLTree',
441 'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.' 444 $this->server->register(
446 array(
'sid' =>
'xsd:string',
447 'target_id' =>
'xsd:int',
448 'object_xml' =>
'xsd:string' 450 array(
'ref_id' =>
'xsd:int'),
452 SERVICE_NAMESPACE .
'#addObject',
455 'ILIAS addObject. Create new object based on xml description under a given node ' .
456 '("category,course,group or folder). Return created reference id of the new object.' 459 $this->server->register(
461 array(
'sid' =>
'xsd:string',
462 'object_xml' =>
'xsd:string' 464 array(
'success' =>
'xsd:boolean'),
466 SERVICE_NAMESPACE .
'#updateObjects',
469 'ILIAS updateObjects. Update object data (title,description,owner)' 472 $this->server->register(
474 array(
'sid' =>
'xsd:string',
475 'source_id' =>
'xsd:int',
476 'target_id' =>
'xsd:int' 478 array(
'ref_id' =>
'xsd:int'),
480 SERVICE_NAMESPACE .
'#addReference',
483 'ILIAS addReference. Create new link of given object to new object. Return the new reference id' 486 $this->server->register(
488 array(
'sid' =>
'xsd:string',
489 'reference_id' =>
'xsd:int' 491 array(
'success' =>
'xsd:boolean'),
493 SERVICE_NAMESPACE .
'#deleteObject',
496 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ' 499 $this->server->register(
500 'removeFromSystemByImportId',
501 array(
'sid' =>
'xsd:string',
502 'import_id' =>
'xsd:string' 504 array(
'success' =>
'xsd:boolean'),
506 SERVICE_NAMESPACE .
'#removeFromSystemByImportId',
509 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the ' .
510 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use ' .
511 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.' 514 $this->server->register(
516 array(
'sid' =>
'xsd:string',
517 'user_id' =>
'xsd:int',
518 'role_id' =>
'xsd:int' 520 array(
'success' =>
'xsd:boolean'),
522 SERVICE_NAMESPACE .
'#addUserRoleEntry',
525 'ILIAS addUserRoleEntry. Assign user to role.' 528 $this->server->register(
529 'deleteUserRoleEntry',
530 array(
'sid' =>
'xsd:string',
531 'user_id' =>
'xsd:int',
532 'role_id' =>
'xsd:int' 534 array(
'success' =>
'xsd:boolean'),
536 SERVICE_NAMESPACE .
'#deleteUserRoleEntry',
539 'ILIAS deleteUserRoleEntry. Deassign user from role.' 543 $this->server->wsdl->addComplexType(
549 array(
'ops_id' => array(
'name' =>
'ops_id',
552 'operation' => array(
'name' =>
'operation',
553 'type' =>
'xsd:string' 555 'description' => array(
'name' =>
'description',
556 'type' =>
'xsd:string' 561 $this->server->wsdl->addComplexType(
568 array(array(
'ref' =>
'SOAP-ENC:arrayType',
569 'wsdl:arrayType' =>
'tns:ilOperation[]' 574 $this->server->register(
576 array(
'sid' =>
'xsd:string'),
577 array(
'operations' =>
'tns:ilOperations'),
579 SERVICE_NAMESPACE .
'#getOperations',
582 'ILIAS getOperations(): get complete set of RBAC operations.' 585 $this->server->register(
587 array(
'sid' =>
'xsd:string',
588 'ref_id' =>
'xsd:int',
589 'role_id' =>
'xsd:int' 591 array(
'success' =>
'xsd:boolean'),
593 SERVICE_NAMESPACE .
'#revokePermissions',
596 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.' 599 $this->server->wsdl->addComplexType(
606 array(array(
'ref' =>
'SOAP-ENC:arrayType',
607 'wsdl:arrayType' =>
'xsd:int[]' 613 $this->server->register(
615 array(
'sid' =>
'xsd:string',
616 'ref_id' =>
'xsd:int',
617 'role_id' =>
'xsd:int',
618 'operations' =>
'tns:intArray' 620 array(
'success' =>
'xsd:boolean'),
622 SERVICE_NAMESPACE .
'#grantPermissions',
625 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. ' .
626 '(Substitutes existing permission settings)' 629 $this->server->register(
631 array(
'sid' =>
'xsd:string',
632 'ref_id' =>
'xsd:int' 634 array(
'role_xml' =>
'xsd:string'),
636 SERVICE_NAMESPACE .
'#getLocalRoles',
639 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.' 642 $this->server->register(
644 array(
'sid' =>
'xsd:string',
645 'user_id' =>
'xsd:int' 647 array(
'role_xml' =>
'xsd:string'),
649 SERVICE_NAMESPACE .
'#getLocalRoles',
652 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ' 655 $this->server->register(
657 array(
'sid' =>
'xsd:string',
658 'target_id' =>
'xsd:int',
659 'obj_xml' =>
'xsd:string' 661 array(
'role_ids' =>
'tns:intArray'),
663 SERVICE_NAMESPACE .
'#addRole',
666 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
667 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.' 670 $this->server->register(
672 array(
'sid' =>
'xsd:string',
673 'role_id' =>
'xsd:int' 675 array(
'success' =>
'xsd:boolean'),
677 SERVICE_NAMESPACE .
'#deleteRole',
680 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user' 683 $this->server->register(
684 'addRoleFromTemplate',
685 array(
'sid' =>
'xsd:string',
686 'target_id' =>
'xsd:int',
687 'obj_xml' =>
'xsd:string',
688 'role_template_id' =>
'xsd:int' 690 array(
'role_ids' =>
'tns:intArray'),
692 SERVICE_NAMESPACE .
'#addRole',
695 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
696 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. ' .
697 'In addition to addRole the template permissions will be copied from the given role template' 700 $this->server->register(
701 'getObjectTreeOperations',
702 array(
'sid' =>
'xsd:string',
703 'ref_id' =>
'xsd:int',
704 'user_id' =>
'xsd:int' 706 array(
'operations' =>
'tns:ilOperations'),
708 SERVICE_NAMESPACE .
'#getPermissionsForObject',
711 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of ' .
712 'an object for a specific user. Returns array of granted operations or empty array' 715 $this->server->register(
717 array(
'sid' =>
'xsd:string',
718 'target_id' =>
'xsd:int',
719 'group_xml' =>
'xsd:string' 721 array(
'ref_id' =>
'xsd:int'),
723 SERVICE_NAMESPACE .
'#addGroup',
726 'ILIAS addGroup(): Add grop according to valid group XML ' .
727 '@See ilias_group_0_1.dtd' 730 $this->server->register(
732 array(
'sid' =>
'xsd:string',
733 'title' =>
'xsd:string' 735 array(
'exists' =>
'xsd:boolean'),
737 SERVICE_NAMESPACE .
'#groupExists',
740 'ILIAS addGroup(): Check if group with given name exists. ' 744 $this->server->register(
746 array(
'sid' =>
'xsd:string',
747 'ref_id' =>
'xsd:int' 749 array(
'group_xml' =>
'xsd:string'),
751 SERVICE_NAMESPACE .
'#getGroup',
754 'ILIAS getGroup(): get xml description of grouip with given reference id.' 758 $this->server->register(
760 array(
'sid' =>
'xsd:string',
761 'group_id' =>
'xsd:int',
762 'user_id' =>
'xsd:int',
763 'type' =>
'xsd:string' 765 array(
'success' =>
'xsd:boolean'),
767 SERVICE_NAMESPACE .
'#assignGroupMember',
770 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"' 774 $this->server->register(
775 'excludeGroupMember',
776 array(
'sid' =>
'xsd:string',
777 'group_id' =>
'xsd:int',
778 'user_id' =>
'xsd:int' 780 array(
'success' =>
'xsd:boolean'),
782 SERVICE_NAMESPACE .
'#excludeGroupMember',
785 'ILIAS excludeGroupMember(). Excludes an user from an existing group.' 789 $this->server->register(
791 array(
'sid' =>
'xsd:string',
792 'group_id' =>
'xsd:int',
793 'user_id' =>
'xsd:int' 795 array(
'role' =>
'xsd:int'),
797 SERVICE_NAMESPACE .
'#isAssignedToGroup',
800 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. ' .
801 'Returns 0 => not assigned, 1 => group admin, 2 => group member' 806 $this->server->register(
808 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
809 array(
'new_ref_id' =>
'xsd:int'),
811 SERVICE_NAMESPACE .
'#ilClone',
814 'ILIAS ilClone(): Only for internal usage.' .
815 'Syntax, parameters may change in future releases. ' 818 $this->server->register(
819 'ilCloneDependencies',
820 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
821 array(
'success' =>
'xsd:boolean'),
823 SERVICE_NAMESPACE .
'#ilCloneDependencies',
826 'ILIAS ilCloneDependencies(): Only for internal usage.' .
827 'Syntax, parameters may change in future releases. ' 831 $this->server->register(
833 array(
'sid' =>
'xsd:string',
834 'active_id' =>
'xsd:long',
835 'question_id' =>
'xsd:long',
837 'solution' =>
'tns:stringArray' 839 array(
'status' =>
'xsd:boolean'),
841 SERVICE_NAMESPACE .
'#saveQuestion',
844 '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.' 847 $this->server->register(
848 'saveQuestionSolution',
849 array(
'sid' =>
'xsd:string',
850 'active_id' =>
'xsd:long',
851 'question_id' =>
'xsd:long',
853 'solution' =>
'xsd:string' 855 array(
'status' =>
'xsd:string'),
857 SERVICE_NAMESPACE .
'#saveQuestionSolution',
860 '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.' 863 $this->server->register(
864 'getQuestionSolution',
865 array(
'sid' =>
'xsd:string',
866 'active_id' =>
'xsd:long',
867 'question_id' =>
'xsd:int',
870 array(
'solution' =>
'tns:stringArray'),
872 SERVICE_NAMESPACE .
'#getQuestionSolution',
875 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.' 878 $this->server->register(
880 array(
'sid' =>
'xsd:string',
881 'active_id' =>
'xsd:long' 883 array(
'userdata' =>
'tns:stringArray'),
885 SERVICE_NAMESPACE .
'#getTestUserData',
888 '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.' 891 $this->server->register(
892 'getPositionOfQuestion',
893 array(
'sid' =>
'xsd:string',
894 'active_id' =>
'xsd:long',
895 'question_id' =>
'xsd:int',
898 array(
'position' =>
'xsd:int'),
900 SERVICE_NAMESPACE .
'#getPositionOfQuestion',
903 'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.' 906 $this->server->register(
907 'getPreviousReachedPoints',
908 array(
'sid' =>
'xsd:string',
909 'active_id' =>
'xsd:long',
910 'question_id' =>
'xsd:int',
913 array(
'position' =>
'tns:doubleArray'),
915 SERVICE_NAMESPACE .
'#getPreviousReachedPoints',
918 'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.' 921 $this->server->register(
922 'getNrOfQuestionsInPass',
923 array(
'sid' =>
'xsd:string',
924 'active_id' =>
'xsd:long',
927 array(
'count' =>
'xsd:int'),
929 SERVICE_NAMESPACE .
'#getNrOfQuestionsInPass',
932 'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.' 935 $this->server->register(
936 'getStructureObjects',
937 array(
'sid' =>
'xsd:string',
938 'ref_id' =>
'xsd:int' 940 array(
'xml' =>
'xsd:string'),
942 SERVICE_NAMESPACE .
'#getStructureObjects',
945 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)' 949 $this->server->register(
951 array(
'sid' =>
'xsd:string',
952 'folder_id' =>
'xsd:int',
953 'usr_xml' =>
'xsd:string',
954 'conflict_rule' =>
'xsd:int',
955 'send_account_mail' =>
'xsd:int' 957 array(
'protocol' =>
'xsd:string'),
959 SERVICE_NAMESPACE .
'#importUsers',
962 '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' 965 $this->server->register(
967 array(
'sid' =>
'xsd:string',
968 'role_type' =>
'xsd:string',
971 array(
'role_xml' =>
'xsd:string'),
973 SERVICE_NAMESPACE .
'#getRoles',
976 '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' 979 $this->server->register(
980 'getUsersForContainer',
981 array(
'sid' =>
'xsd:string',
982 'ref_id' =>
'xsd:int',
983 'attach_roles' =>
'xsd:int',
984 'active' =>
'xsd:int' 986 array(
'user_xml' =>
'xsd:string'),
988 SERVICE_NAMESPACE .
'#getUsersForContainer',
991 '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' 994 $this->server->register(
996 array(
'sid' =>
'xsd:string',
997 'role_id' =>
'xsd:int',
998 'attach_roles' =>
'xsd:int',
999 'active' =>
'xsd:int' 1001 array(
'user_xml' =>
'xsd:string'),
1003 SERVICE_NAMESPACE .
'#getUsersForRole',
1006 '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' 1009 $this->server->register(
1011 array(
'sid' =>
'xsd:string',
1012 'key_fields' =>
'tns:stringArray',
1013 'query_operator' =>
'xsd:string',
1014 'key_values' =>
'tns:stringArray',
1015 'attach_roles' =>
'xsd:int',
1016 'active' =>
'xsd:int' 1018 array(
'user_xml' =>
'xsd:string'),
1020 SERVICE_NAMESPACE .
'#searchUsers',
1023 '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' 1028 $this->server->register(
1030 array(
'sid' =>
'xsd:string'),
1031 array(
'status' =>
'xsd:boolean'),
1033 SERVICE_NAMESPACE .
'#hasNewMail',
1036 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.' 1039 $this->server->register(
1041 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int',
"attachment_mode" =>
"xsd:int"),
1042 array(
'exercisexml' =>
'xsd:string'),
1044 SERVICE_NAMESPACE .
'#getExerciseXML',
1047 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1050 $this->server->register(
1052 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1053 array(
'refid' =>
'xsd:int'),
1055 SERVICE_NAMESPACE .
'#addExercise',
1058 '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!' 1061 $this->server->register(
1063 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1064 array(
'success' =>
'xsd:boolean'),
1066 SERVICE_NAMESPACE .
'#updateExercise',
1069 '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.!' 1072 $this->server->register(
1074 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'attachment_mode' =>
'xsd:int'),
1075 array(
'filexml' =>
'xsd:string'),
1077 SERVICE_NAMESPACE .
'#getFileXML',
1080 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1083 $this->server->register(
1085 array(
'sid' =>
'xsd:string',
'target_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1086 array(
'refid' =>
'xsd:int'),
1088 SERVICE_NAMESPACE .
'#addFile',
1091 '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!' 1094 $this->server->register(
1096 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1097 array(
'success' =>
'xsd:boolean'),
1099 SERVICE_NAMESPACE .
'#updateFile',
1102 '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.!' 1105 $this->server->register(
1107 array(
'sid' =>
'xsd:string',
'user_ids' =>
'tns:intArray',
'attach_roles' =>
'xsd:int'),
1108 array(
'xml' =>
'xsd:string'),
1110 SERVICE_NAMESPACE .
'#resolveUsers',
1113 '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' 1117 $this->server->register(
1118 'getObjIdsByRefIds',
1119 array(
'sid' =>
'xsd:string',
1120 'ref_ids' =>
'tns:intArray' 1122 array(
'obj_ids' =>
'tns:intArray'),
1124 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
1127 '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' 1130 $this->server->register(
1132 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1133 array(
'success' =>
'xsd:boolean'),
1135 SERVICE_NAMESPACE .
'#updateGroup',
1138 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).' 1141 $this->server->register(
1142 'getIMSManifestXML',
1143 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1144 array(
'xml' =>
'xsd:string'),
1146 SERVICE_NAMESPACE .
'#getIMSManifestXML',
1149 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid' 1152 $this->server->register(
1153 'hasSCORMCertificate',
1154 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'usr_id' =>
'xsd:int'),
1155 array(
'success' =>
'xsd:boolean'),
1157 SERVICE_NAMESPACE .
'#hasSCORMCertificate',
1160 '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' 1163 $this->server->register(
1164 'getSCORMCompletionStatus',
1165 array(
'sid' =>
'xsd:string',
'usr_id' =>
'xsd:int',
'ref_id' =>
'xsd:int'),
1166 array(
'status' =>
'xsd:string'),
1168 SERVICE_NAMESPACE .
'#getSCORMCompletionStatus',
1171 'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module' 1174 $this->server->register(
1176 array(
'sid' =>
'xsd:string',
'xml' =>
'xsd:string'),
1177 array(
'xml' =>
'xsd:int'),
1179 SERVICE_NAMESPACE .
'#copyObject',
1182 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.' 1185 $this->server->register(
1187 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'target_id' =>
'xsd:int'),
1188 array(
'result' =>
'xsd:boolean'),
1190 SERVICE_NAMESPACE .
'#moveObject',
1193 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.' 1196 $this->server->register(
1198 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'sum_only' =>
'xsd:boolean'),
1199 array(
'xml' =>
'xsd:string'),
1201 SERVICE_NAMESPACE .
'#getTestResults',
1204 'ILIAS getTestResults(): returns XMLResultSet with 1205 sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points 1206 sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points' 1209 $this->server->register(
1210 'removeTestResults',
1212 'sid' =>
'xsd:string',
1213 'ref_id' =>
'xsd:int',
1214 'user_ids' =>
'tns:intArray' 1216 array(
'success' =>
'xsd:boolean'),
1218 SERVICE_NAMESPACE .
'#removeTestResults',
1221 'ILIAS removeTestResults(): remove test results for the chosen users' 1224 $this->server->register(
1225 'getCoursesForUser',
1226 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1227 array(
'xml' =>
'xsd:string'),
1229 SERVICE_NAMESPACE .
'#getCoursesForUser',
1232 '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.' 1235 $this->server->register(
1237 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1238 array(
'xml' =>
'xsd:string'),
1240 SERVICE_NAMESPACE .
'#getGroupsForUser',
1243 '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.' 1246 $this->server->register(
1248 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1249 array(
'xml' =>
'xsd:string'),
1251 SERVICE_NAMESPACE .
'#getPathForRefId',
1254 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.' 1257 $this->server->register(
1259 array(
'sid' =>
'xsd:string',
1260 'key' =>
'xsd:string',
1261 'combination' =>
'xsd:string',
1262 'role_type' =>
'xsd:string' 1264 array(
'xml' =>
'xsd:string'),
1266 SERVICE_NAMESPACE .
'#searchRoles',
1269 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.' 1272 $this->server->register(
1273 'getInstallationInfoXML',
1275 array(
'xml' =>
'xsd:string'),
1277 SERVICE_NAMESPACE .
'#getInstallationInfoXML',
1280 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd' 1283 $this->server->register(
1285 array(
'clientid' =>
'xsd:string'),
1286 array(
'xml' =>
'xsd:string'),
1288 SERVICE_NAMESPACE .
'#getClientInfoXML',
1291 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id' 1294 $this->server->register(
1295 'getSkillCompletionDateForTriggerRefId',
1296 array(
'sid' =>
'xsd:string',
1297 'user_id' =>
'xsd:string',
1298 'ref_id' =>
'xsd:string' 1300 array(
'dates' =>
'xsd:string'),
1302 SERVICE_NAMESPACE .
'#getSkillCompletionDateForTriggerRefId',
1305 'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.' 1308 $this->server->register(
1309 'checkSkillUserCertificateForTriggerRefId',
1310 array(
'sid' =>
'xsd:string',
1311 'user_id' =>
'xsd:string',
1312 'ref_id' =>
'xsd:string' 1314 array(
'have_certificates' =>
'xsd:string'),
1316 SERVICE_NAMESPACE .
'#checkSkillUserCertificateForTriggerRefId',
1319 'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.' 1322 $this->server->register(
1323 'getSkillTriggerOfAllCertificates',
1324 array(
'sid' =>
'xsd:string',
1325 'user_id' =>
'xsd:string' 1327 array(
'certificate_triggers' =>
'xsd:string'),
1329 SERVICE_NAMESPACE .
'#getSkillTriggerOfAllCertificates',
1332 'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.' 1335 $this->server->register(
1337 array(
'sid' =>
'xsd:string'),
1338 array(
'usr_id' =>
'xsd:int'),
1340 SERVICE_NAMESPACE .
'#getUserIdBySid',
1343 'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid' 1346 $this->server->register(
1347 'deleteExpiredDualOptInUserObjects',
1348 array(
'sid' =>
'xsd:string',
1349 'usr_id' =>
'xsd:int' 1351 array(
'status' =>
'xsd:boolean'),
1353 SERVICE_NAMESPACE .
'#deleteExpiredDualOptInUserObjects',
1356 'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method' 1359 $this->server->register(
1361 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int'),
1362 array(
'weblinkxml' =>
'xsd:string'),
1364 SERVICE_NAMESPACE .
'#readWebLink',
1367 'ILIAS readWebLink(): returns xml description of a weblink container.' 1370 $this->server->register(
1372 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1373 array(
'refid' =>
'xsd:int'),
1375 SERVICE_NAMESPACE .
'#createWebLink',
1378 '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!' 1381 $this->server->register(
1383 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1384 array(
'success' =>
'xsd:boolean'),
1386 SERVICE_NAMESPACE .
'#updateWebLink',
1389 'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).' 1393 $this->server->register(
1394 'getLearningProgressChanges',
1395 array(
'sid' =>
'xsd:string',
1396 'timestamp' =>
'xsd:string',
1397 'include_ref_ids' =>
'xsd:boolean',
1398 'type_filter' =>
'tns:stringArray' 1400 array(
'lp_data' =>
'xsd:string'),
1402 SERVICE_NAMESPACE .
'#getLearningProgressChanges',
1405 'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.' 1409 $this->server->register(
1412 'sid' =>
'xsd:string',
1413 'ref_ids' =>
'tns:intArray',
1414 'usr_ids' =>
'tns:intArray',
1415 'type_filter' =>
'tns:stringArray',
1416 'progress_filter' =>
'tns:intArray' 1418 array(
'status' =>
'xsd:boolean'),
1420 SERVICE_NAMESPACE .
'#deleteProgress',
1423 'Delete user progress data of objects. ' 1426 $this->server->register(
1429 'sid' =>
'xsd:string',
1430 'ref_id' =>
'xsd:int',
1431 'progress_filter' =>
'tns:intArray' 1433 array(
'user_results' =>
'xsd:string'),
1435 SERVICE_NAMESPACE .
'#getProgressInfo',
1438 'Get object learning progress information' 1441 $this->server->register(
1442 'exportDataCollectionContent',
1444 'sid' =>
'xsd:string',
1445 'ref_id' =>
'xsd:int',
1446 'table_id' =>
'xsd:int',
1447 'format' =>
'xsd:string',
1448 'filepath' =>
'xsd:string' 1450 array(
'export_path' =>
'xsd:string'),
1452 SERVICE_NAMESPACE .
'#exportDataCollectionTableContent',
1455 'Generate DataCollectionContent Export' 1458 $this->server->register(
1459 'processBackgroundTask',
1461 'sid' =>
'xsd:string',
1462 'task_id' =>
'xsd:int' 1464 array(
'status' =>
'xsd:boolean'),
1466 SERVICE_NAMESPACE .
'#processBackgroundTask',
1469 'Process task in background' 1489 foreach (
$f as $function) {
1490 $this->server->register(
1491 $function->getName(),
1492 $function->getInputParams(),
1493 $function->getOutputParams(),
1495 SERVICE_NAMESPACE .
'#orgu',
1498 $function->getDocumentation()
1504 if (isset(
$_GET[
'client_id'])) {
1522 $component_factory = $DIC[
'component.factory'];
1523 $soapHook =
new ilSoapHook($component_factory);
1524 foreach ($soapHook->getWsdlTypes() as $type) {
1525 $this->server->wsdl->addComplexType(
1527 $type->getTypeClass(),
1528 $type->getPhpType(),
1529 $type->getCompositor(),
1530 $type->getRestrictionBase(),
1531 $type->getElements(),
1532 $type->getAttributes(),
1533 $type->getArrayType()
1536 foreach ($soapHook->getSoapMethods() as $method) {
1537 $this->server->register(
1539 $method->getInputParams(),
1540 $method->getOutputParams(),
1541 $method->getServiceNamespace(),
1542 $method->getServiceNamespace() .
'#' . $method->getName(),
1543 $method->getServiceStyle(),
1544 $method->getServiceUse(),
1545 $method->getDocumentation()
Class AddUserIdToPositionInOrgUnit.
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)
static initILIAS()
ilias initialisation
Class UserIdsOfPositionAndOrgUnit.
Class SuperiorPositionId.
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...