38require_once __DIR__ .
'/../lib/nusoap.php';
39require_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',
255 'notification' =>
'xsd:int',
256 'contact_person' =>
'xsd:int',
257 'blocked' =>
'xsd:int'
259 array(
'success' =>
'xsd:boolean'),
261 SERVICE_NAMESPACE .
'#assignCourseMember',
264 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member". Notification, contact_person and blocked should be either 1 or 0.'
269 'excludeCourseMember',
270 array(
'sid' =>
'xsd:string',
271 'course_id' =>
'xsd:int',
272 'user_id' =>
'xsd:int'
274 array(
'success' =>
'xsd:boolean'),
276 SERVICE_NAMESPACE .
'#excludeCourseMember',
279 'ILIAS excludeCourseMember(). Excludes an user from an existing course.'
284 'isAssignedToCourse',
285 array(
'sid' =>
'xsd:string',
286 'course_id' =>
'xsd:int',
287 'user_id' =>
'xsd:int'
289 array(
'role' =>
'xsd:int'),
291 SERVICE_NAMESPACE .
'#isAssignedToCourse',
294 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. ' .
295 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor'
301 array(
'sid' =>
'xsd:string',
302 'course_id' =>
'xsd:int'
304 array(
'xml' =>
'xsd:string'),
306 SERVICE_NAMESPACE .
'#getCourseXML',
309 'ILIAS getCourseXML(). Get a xml description of a specific course.'
315 array(
'sid' =>
'xsd:string',
316 'course_id' =>
'xsd:int',
317 'xml' =>
'xsd:string'
319 array(
'success' =>
'xsd:boolean'),
321 SERVICE_NAMESPACE .
'#updateCourse',
324 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a ' .
325 'given xml description'
330 'getObjIdByImportId',
331 array(
'sid' =>
'xsd:string',
332 'import_id' =>
'xsd:string'
334 array(
'obj_id' =>
'xsd:int'),
336 SERVICE_NAMESPACE .
'#getCourseIdByImportId',
339 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.'
344 'getRefIdsByImportId',
345 array(
'sid' =>
'xsd:string',
346 'import_id' =>
'xsd:string'
348 array(
'ref_ids' =>
'tns:intArray'),
350 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
353 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.'
359 array(
'sid' =>
'xsd:string',
360 'obj_id' =>
'xsd:string'
362 array(
'ref_ids' =>
'tns:intArray'),
364 SERVICE_NAMESPACE .
'#getRefIdsByObjId',
367 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.'
372 'getObjectByReference',
373 array(
'sid' =>
'xsd:string',
374 'reference_id' =>
'xsd:int',
375 'user_id' =>
'xsd:int'
377 array(
'object_xml' =>
'xsd:string'),
379 SERVICE_NAMESPACE .
'#getObjectByReference',
382 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, ' .
383 'this methods also checks the permissions of that user on the object.'
388 array(
'sid' =>
'xsd:string',
389 'title' =>
'xsd:string',
390 'user_id' =>
'xsd:int'
392 array(
'object_xml' =>
'xsd:string'),
394 SERVICE_NAMESPACE .
'#getObjectsByTitle',
397 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. ' .
398 'If a user id is given this method also checks the permissions of that user on the object.'
403 array(
'sid' =>
'xsd:string',
404 'types' =>
'tns:stringArray',
405 'key' =>
'xsd:string',
406 'combination' =>
'xsd:string',
407 'user_id' =>
'xsd:int'
409 array(
'object_xml' =>
'xsd:string'),
411 SERVICE_NAMESPACE .
'#searchObjects',
414 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" ' .
415 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); ' .
416 ' If an optional user id is given, this methods also return the permissions for that user ' .
417 'on the found objects'
422 array(
'sid' =>
'xsd:string',
423 'ref_id' =>
'xsd:int',
424 'types' =>
'tns:stringArray',
425 'user_id' =>
'xsd:int'
427 array(
'object_xml' =>
'xsd:string'),
429 SERVICE_NAMESPACE .
'#getTreeChilds',
432 'ILIAS getTreeChilds(): Get all child objects of a given object. ' .
433 'Choose array of types to filter the output. Choose empty type array to receive all object types. ' .
434 'Results are filtered based on the read permissions of the given user_id. In case of an invalid user id, an empty result is returned without error. ' .
435 'Retrieve your user id first via the getUserIdBySid method and then pass it along with the parameter.'
440 array(
'sid' =>
'xsd:string',
441 'ref_id' =>
'xsd:int',
442 'types' =>
'tns:stringArray',
443 'user_id' =>
'xsd:int'
445 array(
'object_xml' =>
'xsd:string'),
447 SERVICE_NAMESPACE .
'#getXMLTree',
450 'ILIAS getXMLTree(): Returns a XML stream with the subtree objects. The "types" parameter is optional and acts as an exclusion filter (listed types are excluded), unlike getTreeChilds() where types are included.'
455 array(
'sid' =>
'xsd:string',
456 'target_id' =>
'xsd:int',
457 'object_xml' =>
'xsd:string'
459 array(
'ref_id' =>
'xsd:int'),
461 SERVICE_NAMESPACE .
'#addObject',
464 'ILIAS addObject. Create new object based on xml description under a given node ' .
465 '("category,course,group or folder). Return created reference id of the new object.'
470 array(
'sid' =>
'xsd:string',
471 'object_xml' =>
'xsd:string'
473 array(
'success' =>
'xsd:boolean'),
475 SERVICE_NAMESPACE .
'#updateObjects',
478 'ILIAS updateObjects. Update object data (title,description,owner)'
483 array(
'sid' =>
'xsd:string',
484 'source_id' =>
'xsd:int',
485 'target_id' =>
'xsd:int'
487 array(
'ref_id' =>
'xsd:int'),
489 SERVICE_NAMESPACE .
'#addReference',
492 'ILIAS addReference. Create new link of given object to new object. Return the new reference id'
497 array(
'sid' =>
'xsd:string',
498 'reference_id' =>
'xsd:int'
500 array(
'success' =>
'xsd:boolean'),
502 SERVICE_NAMESPACE .
'#deleteObject',
505 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted '
509 'removeFromSystemByImportId',
510 array(
'sid' =>
'xsd:string',
511 'import_id' =>
'xsd:string'
513 array(
'success' =>
'xsd:boolean'),
515 SERVICE_NAMESPACE .
'#removeFromSystemByImportId',
518 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the ' .
519 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use ' .
520 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.'
525 array(
'sid' =>
'xsd:string',
526 'user_id' =>
'xsd:int',
527 'role_id' =>
'xsd:int'
529 array(
'success' =>
'xsd:boolean'),
531 SERVICE_NAMESPACE .
'#addUserRoleEntry',
534 'ILIAS addUserRoleEntry. Assign user to role.'
538 'deleteUserRoleEntry',
539 array(
'sid' =>
'xsd:string',
540 'user_id' =>
'xsd:int',
541 'role_id' =>
'xsd:int'
543 array(
'success' =>
'xsd:boolean'),
545 SERVICE_NAMESPACE .
'#deleteUserRoleEntry',
548 'ILIAS deleteUserRoleEntry. Deassign user from role.'
552 $this->
server->wsdl->addComplexType(
558 array(
'ops_id' => array(
'name' =>
'ops_id',
561 'operation' => array(
'name' =>
'operation',
562 'type' =>
'xsd:string'
564 'description' => array(
'name' =>
'description',
565 'type' =>
'xsd:string'
570 $this->
server->wsdl->addComplexType(
577 array(array(
'ref' =>
'SOAP-ENC:arrayType',
578 'wsdl:arrayType' =>
'tns:ilOperation[]'
585 array(
'sid' =>
'xsd:string'),
586 array(
'operations' =>
'tns:ilOperations'),
588 SERVICE_NAMESPACE .
'#getOperations',
591 'ILIAS getOperations(): get complete set of RBAC operations.'
596 array(
'sid' =>
'xsd:string',
597 'ref_id' =>
'xsd:int',
598 'role_id' =>
'xsd:int'
600 array(
'success' =>
'xsd:boolean'),
602 SERVICE_NAMESPACE .
'#revokePermissions',
605 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.'
608 $this->
server->wsdl->addComplexType(
615 array(array(
'ref' =>
'SOAP-ENC:arrayType',
616 'wsdl:arrayType' =>
'xsd:int[]'
624 array(
'sid' =>
'xsd:string',
625 'ref_id' =>
'xsd:int',
626 'role_id' =>
'xsd:int',
627 'operations' =>
'tns:intArray'
629 array(
'success' =>
'xsd:boolean'),
631 SERVICE_NAMESPACE .
'#grantPermissions',
634 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. ' .
635 '(Substitutes existing permission settings)'
640 array(
'sid' =>
'xsd:string',
641 'ref_id' =>
'xsd:int'
643 array(
'role_xml' =>
'xsd:string'),
645 SERVICE_NAMESPACE .
'#getLocalRoles',
648 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.'
653 array(
'sid' =>
'xsd:string',
654 'user_id' =>
'xsd:int'
656 array(
'role_xml' =>
'xsd:string'),
658 SERVICE_NAMESPACE .
'#getLocalRoles',
661 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. '
666 array(
'sid' =>
'xsd:string',
667 'target_id' =>
'xsd:int',
668 'obj_xml' =>
'xsd:string'
670 array(
'role_ids' =>
'tns:intArray'),
672 SERVICE_NAMESPACE .
'#addRole',
675 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
676 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.'
681 array(
'sid' =>
'xsd:string',
682 'role_id' =>
'xsd:int'
684 array(
'success' =>
'xsd:boolean'),
686 SERVICE_NAMESPACE .
'#deleteRole',
689 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user'
693 'addRoleFromTemplate',
694 array(
'sid' =>
'xsd:string',
695 'target_id' =>
'xsd:int',
696 'obj_xml' =>
'xsd:string',
697 'role_template_id' =>
'xsd:int'
699 array(
'role_ids' =>
'tns:intArray'),
701 SERVICE_NAMESPACE .
'#addRole',
704 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
705 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. ' .
706 'In addition to addRole the template permissions will be copied from the given role template'
710 'getObjectTreeOperations',
711 array(
'sid' =>
'xsd:string',
712 'ref_id' =>
'xsd:int',
713 'user_id' =>
'xsd:int'
715 array(
'operations' =>
'tns:ilOperations'),
717 SERVICE_NAMESPACE .
'#getPermissionsForObject',
720 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of ' .
721 'an object for a specific user. Returns array of granted operations or empty array'
726 array(
'sid' =>
'xsd:string',
727 'target_id' =>
'xsd:int',
728 'group_xml' =>
'xsd:string'
730 array(
'ref_id' =>
'xsd:int'),
732 SERVICE_NAMESPACE .
'#addGroup',
735 'ILIAS addGroup(): Add grop according to valid group XML ' .
736 '@See ilias_group_0_1.dtd'
741 array(
'sid' =>
'xsd:string',
742 'title' =>
'xsd:string'
744 array(
'exists' =>
'xsd:boolean'),
746 SERVICE_NAMESPACE .
'#groupExists',
749 'ILIAS addGroup(): Check if group with given name exists. '
755 array(
'sid' =>
'xsd:string',
756 'ref_id' =>
'xsd:int'
758 array(
'group_xml' =>
'xsd:string'),
760 SERVICE_NAMESPACE .
'#getGroup',
763 'ILIAS getGroup(): get xml description of grouip with given reference id.'
769 array(
'sid' =>
'xsd:string',
770 'group_id' =>
'xsd:int',
771 'user_id' =>
'xsd:int',
772 'type' =>
'xsd:string'
774 array(
'success' =>
'xsd:boolean'),
776 SERVICE_NAMESPACE .
'#assignGroupMember',
779 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"'
784 'excludeGroupMember',
785 array(
'sid' =>
'xsd:string',
786 'group_id' =>
'xsd:int',
787 'user_id' =>
'xsd:int'
789 array(
'success' =>
'xsd:boolean'),
791 SERVICE_NAMESPACE .
'#excludeGroupMember',
794 'ILIAS excludeGroupMember(). Excludes an user from an existing group.'
800 array(
'sid' =>
'xsd:string',
801 'group_id' =>
'xsd:int',
802 'user_id' =>
'xsd:int'
804 array(
'role' =>
'xsd:int'),
806 SERVICE_NAMESPACE .
'#isAssignedToGroup',
809 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. ' .
810 'Returns 0 => not assigned, 1 => group admin, 2 => group member'
817 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
818 array(
'new_ref_id' =>
'xsd:int'),
820 SERVICE_NAMESPACE .
'#ilClone',
823 'ILIAS ilClone(): Only for internal usage.' .
824 'Syntax, parameters may change in future releases. '
828 'ilCloneDependencies',
829 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
830 array(
'success' =>
'xsd:boolean'),
832 SERVICE_NAMESPACE .
'#ilCloneDependencies',
835 'ILIAS ilCloneDependencies(): Only for internal usage.' .
836 'Syntax, parameters may change in future releases. '
842 array(
'sid' =>
'xsd:string',
843 'active_id' =>
'xsd:long',
844 'question_id' =>
'xsd:long',
846 'solution' =>
'tns:stringArray'
848 array(
'status' =>
'xsd:boolean'),
850 SERVICE_NAMESPACE .
'#saveQuestion',
853 '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.'
857 'saveQuestionSolution',
858 array(
'sid' =>
'xsd:string',
859 'active_id' =>
'xsd:long',
860 'question_id' =>
'xsd:long',
862 'solution' =>
'xsd:string'
864 array(
'status' =>
'xsd:string'),
866 SERVICE_NAMESPACE .
'#saveQuestionSolution',
869 '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.'
873 'getQuestionSolution',
874 array(
'sid' =>
'xsd:string',
875 'active_id' =>
'xsd:long',
876 'question_id' =>
'xsd:int',
879 array(
'solution' =>
'tns:stringArray'),
881 SERVICE_NAMESPACE .
'#getQuestionSolution',
884 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.'
889 array(
'sid' =>
'xsd:string',
890 'active_id' =>
'xsd:long'
892 array(
'userdata' =>
'tns:stringArray'),
894 SERVICE_NAMESPACE .
'#getTestUserData',
897 '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.'
901 'getPositionOfQuestion',
902 array(
'sid' =>
'xsd:string',
903 'active_id' =>
'xsd:long',
904 'question_id' =>
'xsd:int',
907 array(
'position' =>
'xsd:int'),
909 SERVICE_NAMESPACE .
'#getPositionOfQuestion',
912 'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.'
916 'getPreviousReachedPoints',
917 array(
'sid' =>
'xsd:string',
918 'active_id' =>
'xsd:long',
919 'question_id' =>
'xsd:int',
922 array(
'position' =>
'tns:doubleArray'),
924 SERVICE_NAMESPACE .
'#getPreviousReachedPoints',
927 'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.'
931 'getNrOfQuestionsInPass',
932 array(
'sid' =>
'xsd:string',
933 'active_id' =>
'xsd:long',
936 array(
'count' =>
'xsd:int'),
938 SERVICE_NAMESPACE .
'#getNrOfQuestionsInPass',
941 'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.'
945 'getStructureObjects',
946 array(
'sid' =>
'xsd:string',
947 'ref_id' =>
'xsd:int'
949 array(
'xml' =>
'xsd:string'),
951 SERVICE_NAMESPACE .
'#getStructureObjects',
954 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)'
960 array(
'sid' =>
'xsd:string',
961 'folder_id' =>
'xsd:int',
962 'usr_xml' =>
'xsd:string',
963 'conflict_rule' =>
'xsd:int',
964 'send_account_mail' =>
'xsd:int'
966 array(
'protocol' =>
'xsd:string'),
968 SERVICE_NAMESPACE .
'#importUsers',
971 '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'
976 array(
'sid' =>
'xsd:string',
977 'role_type' =>
'xsd:string',
980 array(
'role_xml' =>
'xsd:string'),
982 SERVICE_NAMESPACE .
'#getRoles',
985 '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'
989 'getUsersForContainer',
990 array(
'sid' =>
'xsd:string',
991 'ref_id' =>
'xsd:int',
992 'attach_roles' =>
'xsd:int',
993 'active' =>
'xsd:int'
995 array(
'user_xml' =>
'xsd:string'),
997 SERVICE_NAMESPACE .
'#getUsersForContainer',
1000 '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'
1005 array(
'sid' =>
'xsd:string',
1006 'role_id' =>
'xsd:int',
1007 'attach_roles' =>
'xsd:int',
1008 'active' =>
'xsd:int'
1010 array(
'user_xml' =>
'xsd:string'),
1012 SERVICE_NAMESPACE .
'#getUsersForRole',
1015 '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'
1020 array(
'sid' =>
'xsd:string',
1021 'key_fields' =>
'tns:stringArray',
1022 'query_operator' =>
'xsd:string',
1023 'key_values' =>
'tns:stringArray',
1024 'attach_roles' =>
'xsd:int',
1025 'active' =>
'xsd:int'
1027 array(
'user_xml' =>
'xsd:string'),
1029 SERVICE_NAMESPACE .
'#searchUsers',
1032 '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'
1039 array(
'sid' =>
'xsd:string'),
1040 array(
'status' =>
'xsd:boolean'),
1042 SERVICE_NAMESPACE .
'#hasNewMail',
1045 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.'
1050 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int',
"attachment_mode" =>
"xsd:int"),
1051 array(
'exercisexml' =>
'xsd:string'),
1053 SERVICE_NAMESPACE .
'#getExerciseXML',
1056 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)'
1061 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1062 array(
'refid' =>
'xsd:int'),
1064 SERVICE_NAMESPACE .
'#addExercise',
1067 '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!'
1072 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1073 array(
'success' =>
'xsd:boolean'),
1075 SERVICE_NAMESPACE .
'#updateExercise',
1078 '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.!'
1083 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'attachment_mode' =>
'xsd:int'),
1084 array(
'filexml' =>
'xsd:string'),
1086 SERVICE_NAMESPACE .
'#getFileXML',
1089 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)'
1094 array(
'sid' =>
'xsd:string',
'target_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1095 array(
'refid' =>
'xsd:int'),
1097 SERVICE_NAMESPACE .
'#addFile',
1100 '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!'
1105 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1106 array(
'success' =>
'xsd:boolean'),
1108 SERVICE_NAMESPACE .
'#updateFile',
1111 '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.!'
1116 array(
'sid' =>
'xsd:string',
'user_ids' =>
'tns:intArray',
'attach_roles' =>
'xsd:int'),
1117 array(
'xml' =>
'xsd:string'),
1119 SERVICE_NAMESPACE .
'#resolveUsers',
1122 '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'
1127 'getObjIdsByRefIds',
1128 array(
'sid' =>
'xsd:string',
1129 'ref_ids' =>
'tns:intArray'
1131 array(
'obj_ids' =>
'tns:intArray'),
1133 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
1136 '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'
1141 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1142 array(
'success' =>
'xsd:boolean'),
1144 SERVICE_NAMESPACE .
'#updateGroup',
1147 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).'
1151 'getIMSManifestXML',
1152 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1153 array(
'xml' =>
'xsd:string'),
1155 SERVICE_NAMESPACE .
'#getIMSManifestXML',
1158 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid'
1162 'hasSCORMCertificate',
1163 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'usr_id' =>
'xsd:int'),
1164 array(
'success' =>
'xsd:boolean'),
1166 SERVICE_NAMESPACE .
'#hasSCORMCertificate',
1169 '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'
1173 'getSCORMCompletionStatus',
1174 array(
'sid' =>
'xsd:string',
'usr_id' =>
'xsd:int',
'ref_id' =>
'xsd:int'),
1175 array(
'status' =>
'xsd:string'),
1177 SERVICE_NAMESPACE .
'#getSCORMCompletionStatus',
1180 'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module'
1185 array(
'sid' =>
'xsd:string',
'xml' =>
'xsd:string'),
1186 array(
'xml' =>
'xsd:int'),
1188 SERVICE_NAMESPACE .
'#copyObject',
1191 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.'
1196 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'target_id' =>
'xsd:int'),
1197 array(
'result' =>
'xsd:boolean'),
1199 SERVICE_NAMESPACE .
'#moveObject',
1202 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.'
1207 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'sum_only' =>
'xsd:boolean'),
1208 array(
'xml' =>
'xsd:string'),
1210 SERVICE_NAMESPACE .
'#getTestResults',
1213 'ILIAS getTestResults(): returns XMLResultSet with
1214 sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points
1215 sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points'
1219 'removeTestResults',
1221 'sid' =>
'xsd:string',
1222 'ref_id' =>
'xsd:int',
1223 'user_ids' =>
'tns:intArray'
1225 array(
'success' =>
'xsd:boolean'),
1227 SERVICE_NAMESPACE .
'#removeTestResults',
1230 'ILIAS removeTestResults(): remove test results for the chosen users'
1234 'getCoursesForUser',
1235 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1236 array(
'xml' =>
'xsd:string'),
1238 SERVICE_NAMESPACE .
'#getCoursesForUser',
1241 '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.'
1246 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1247 array(
'xml' =>
'xsd:string'),
1249 SERVICE_NAMESPACE .
'#getGroupsForUser',
1252 '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.'
1257 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1258 array(
'xml' =>
'xsd:string'),
1260 SERVICE_NAMESPACE .
'#getPathForRefId',
1263 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.'
1268 array(
'sid' =>
'xsd:string',
1269 'key' =>
'xsd:string',
1270 'combination' =>
'xsd:string',
1271 'role_type' =>
'xsd:string'
1273 array(
'xml' =>
'xsd:string'),
1275 SERVICE_NAMESPACE .
'#searchRoles',
1278 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.'
1282 'getInstallationInfoXML',
1284 array(
'xml' =>
'xsd:string'),
1286 SERVICE_NAMESPACE .
'#getInstallationInfoXML',
1289 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd'
1294 array(
'clientid' =>
'xsd:string'),
1295 array(
'xml' =>
'xsd:string'),
1297 SERVICE_NAMESPACE .
'#getClientInfoXML',
1300 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id'
1304 'getSkillCompletionDateForTriggerRefId',
1305 array(
'sid' =>
'xsd:string',
1306 'user_id' =>
'xsd:string',
1307 'ref_id' =>
'xsd:string'
1309 array(
'dates' =>
'xsd:string'),
1311 SERVICE_NAMESPACE .
'#getSkillCompletionDateForTriggerRefId',
1314 'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.'
1318 'checkSkillUserCertificateForTriggerRefId',
1319 array(
'sid' =>
'xsd:string',
1320 'user_id' =>
'xsd:string',
1321 'ref_id' =>
'xsd:string'
1323 array(
'have_certificates' =>
'xsd:string'),
1325 SERVICE_NAMESPACE .
'#checkSkillUserCertificateForTriggerRefId',
1328 'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.'
1332 'getSkillTriggerOfAllCertificates',
1333 array(
'sid' =>
'xsd:string',
1334 'user_id' =>
'xsd:string'
1336 array(
'certificate_triggers' =>
'xsd:string'),
1338 SERVICE_NAMESPACE .
'#getSkillTriggerOfAllCertificates',
1341 'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.'
1346 array(
'sid' =>
'xsd:string'),
1347 array(
'usr_id' =>
'xsd:int'),
1349 SERVICE_NAMESPACE .
'#getUserIdBySid',
1352 'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid'
1356 'deleteExpiredDualOptInUserObjects',
1357 array(
'sid' =>
'xsd:string',
1358 'usr_id' =>
'xsd:int'
1360 array(
'status' =>
'xsd:boolean'),
1362 SERVICE_NAMESPACE .
'#deleteExpiredDualOptInUserObjects',
1365 'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method'
1370 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int'),
1371 array(
'weblinkxml' =>
'xsd:string'),
1373 SERVICE_NAMESPACE .
'#readWebLink',
1376 'ILIAS readWebLink(): returns xml description of a weblink container.'
1381 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1382 array(
'refid' =>
'xsd:int'),
1384 SERVICE_NAMESPACE .
'#createWebLink',
1387 '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!'
1392 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1393 array(
'success' =>
'xsd:boolean'),
1395 SERVICE_NAMESPACE .
'#updateWebLink',
1398 'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).'
1403 'getLearningProgressChanges',
1404 array(
'sid' =>
'xsd:string',
1405 'timestamp' =>
'xsd:string',
1406 'include_ref_ids' =>
'xsd:boolean',
1407 'type_filter' =>
'tns:stringArray'
1409 array(
'lp_data' =>
'xsd:string'),
1411 SERVICE_NAMESPACE .
'#getLearningProgressChanges',
1414 'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.'
1421 'sid' =>
'xsd:string',
1422 'ref_ids' =>
'tns:intArray',
1423 'usr_ids' =>
'tns:intArray',
1424 'type_filter' =>
'tns:stringArray',
1425 'progress_filter' =>
'tns:intArray'
1427 array(
'status' =>
'xsd:boolean'),
1429 SERVICE_NAMESPACE .
'#deleteProgress',
1432 'Delete user progress data of objects. '
1438 'sid' =>
'xsd:string',
1439 'ref_id' =>
'xsd:int',
1440 'progress_filter' =>
'tns:intArray'
1442 array(
'user_results' =>
'xsd:string'),
1444 SERVICE_NAMESPACE .
'#getProgressInfo',
1447 'Get object learning progress information'
1451 'exportDataCollectionContent',
1453 'sid' =>
'xsd:string',
1454 'ref_id' =>
'xsd:int',
1455 'table_id' =>
'xsd:int',
1456 'format' =>
'xsd:string',
1457 'filepath' =>
'xsd:string'
1459 array(
'export_path' =>
'xsd:string'),
1461 SERVICE_NAMESPACE .
'#exportDataCollectionTableContent',
1464 'Generate DataCollectionContent Export'
1468 'processBackgroundTask',
1470 'sid' =>
'xsd:string',
1471 'task_id' =>
'xsd:int'
1473 array(
'status' =>
'xsd:boolean'),
1475 SERVICE_NAMESPACE .
'#processBackgroundTask',
1478 'Process task in background'
1498 foreach (
$f as $function) {
1500 $function->getName(),
1501 $function->getInputParams(),
1502 $function->getOutputParams(),
1504 SERVICE_NAMESPACE .
'#orgu',
1507 $function->getDocumentation()
1513 if (isset(
$_GET[
'client_id'])) {
1531 $component_factory =
$DIC[
'component.factory'];
1532 $soapHook =
new ilSoapHook($component_factory);
1533 foreach ($soapHook->getWsdlTypes() as $type) {
1534 $this->
server->wsdl->addComplexType(
1536 $type->getTypeClass(),
1537 $type->getPhpType(),
1538 $type->getCompositor(),
1539 $type->getRestrictionBase(),
1540 $type->getElements(),
1541 $type->getAttributes(),
1542 $type->getArrayType()
1545 foreach ($soapHook->getSoapMethods() as $method) {
1548 $method->getInputParams(),
1549 $method->getOutputParams(),
1550 $method->getServiceNamespace(),
1551 $method->getServiceNamespace() .
'#' . $method->getName(),
1552 $method->getServiceStyle(),
1553 $method->getServiceUse(),
1554 $method->getDocumentation()
Class AddUserIdToPositionInOrgUnit.
Class EmployeePositionId.
Class AddUserIdToPositionInOrgUnit.
Class SuperiorPositionId.
Class UserIdsOfPositionAndOrgUnit.
const CONTEXT_SOAP_NO_AUTH
static init(string $a_type)
Init context by type.
static initILIAS()
ilias initialisation
__construct(bool $a_use_wsdl=true)
enableWSDL(ilSetting $setting)
handleSoapPlugins()
Register any methods and types of SOAP plugins to the SOAP server.
get(string $a_keyword, ?string $a_default_value=null)
get setting