34 include_once
'./webservice/soap/lib/nusoap.php';
35 include_once
'./webservice/soap/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');
51 global $debug; $debug =
true;
53 $this->server->decode_utf8 =
false;
54 $this->server->class =
"ilSoapFunctions";
70 $this->server->service($HTTP_RAW_POST_DATA);
77 $this->server->configureWSDL(SERVICE_NAME,SERVICE_NAMESPACE);
87 $this->server->wsdl->addComplexType(
'intArray',
93 array(array(
'ref'=>
'SOAP-ENC:arrayType',
'wsdl:arrayType'=>
'xsd:int[]')),
96 $this->server->wsdl->addComplexType(
'stringArray',
102 array(array(
'ref'=>
'SOAP-ENC:arrayType',
'wsdl:arrayType'=>
'xsd:string[]')),
108 $this->server->register(
'login',
109 array(
'client' =>
'xsd:string',
110 'username' =>
'xsd:string',
111 'password' =>
'xsd:string'),
112 array(
'sid' =>
'xsd:string'),
114 SERVICE_NAMESPACE.
'#login',
117 'ILIAS login function');
120 $this->server->register(
'loginCAS',
121 array(
'client' =>
'xsd:string',
122 'PT' =>
'xsd:string',
123 'user' =>
'xsd:string'),
124 array(
'sid' =>
'xsd:string'),
126 SERVICE_NAMESPACE.
'#loginCAS',
129 'ILIAS login function via CAS');
131 $this->server->register(
'loginLDAP',
132 array(
'client' =>
'xsd:string',
133 'username' =>
'xsd:string',
134 'password' =>
'xsd:string'),
135 array(
'sid' =>
'xsd:string'),
137 SERVICE_NAMESPACE.
'#login',
140 'ILIAS login function via LDAP');
145 $this->server->register(
'logout',
146 array(
'sid' =>
'xsd:string'),
147 array(
'success' =>
'xsd:boolean'),
149 SERVICE_NAMESPACE.
'#logout',
152 'ILIAS logout function');
154 $this->server->wsdl->addComplexType(
'ilUserData',
159 array(
'usr_id' => array(
'name' =>
'usr_id',
'type' =>
'xsd:int'),
160 'login' => array(
'name' =>
'login',
'type' =>
'xsd:string'),
161 'passwd' => array(
'name' =>
'passwd',
'type' =>
'xsd:string'),
162 'firstname' => array(
'name' =>
'firstname',
'type' =>
'xsd:string'),
163 'lastname' => array(
'name' =>
'lastname',
'type' =>
'xsd:string'),
164 'title' => array(
'name' =>
'title',
'type' =>
'xsd:string'),
165 'gender' => array(
'name' =>
'gender',
'type' =>
'xsd:string'),
166 'email' => array(
'name' =>
'email',
'type' =>
'xsd:string'),
167 'institution' => array(
'name' =>
'institution',
'type' =>
'xsd:string'),
168 'street' => array(
'name' =>
'street',
'type' =>
'xsd:string'),
169 'city' => array(
'name' =>
'city',
'type' =>
'xsd:string'),
170 'zipcode' => array(
'name' =>
'zipcode',
'type' =>
'xsd:string'),
171 'country' => array(
'name' =>
'country',
'type' =>
'xsd:string'),
172 'phone_office' => array(
'name' =>
'phone_office',
'type' =>
'xsd:string'),
173 'last_login' => array(
'name' =>
'last_login',
'type' =>
'xsd:string'),
174 'last_update' => array(
'name' =>
'last_update',
'type' =>
'xsd:string'),
175 'create_date' => array(
'name' =>
'create_date',
'type' =>
'xsd:string'),
176 'hobby' => array(
'name' =>
'hobby',
'type' =>
'xsd:string'),
177 'department' => array(
'name' =>
'department',
'type' =>
'xsd:string'),
178 'phone_home' => array(
'name' =>
'phone_home',
'type' =>
'xsd:string'),
179 'phone_mobile' => array(
'name' =>
'phone_mobile',
'type' =>
'xsd:string'),
180 'fax' => array(
'name' =>
'fax',
'type' =>
'xsd:string'),
181 'time_limit_owner' => array(
'name' =>
'time_limit_owner',
'type' =>
'xsd:int'),
182 'time_limit_unlimited' => array(
'name' =>
'time_limit_unlimited',
'type' =>
'xsd:int'),
183 'time_limit_from' => array(
'name' =>
'time_limit_from',
'type' =>
'xsd:int'),
184 'time_limit_until' => array(
'name' =>
'time_limit_until',
'type' =>
'xsd:int'),
185 'time_limit_message' => array(
'name' =>
'time_limit_message',
'type' =>
'xsd:int'),
186 'referral_comment' => array(
'name' =>
'referral_comment',
'type' =>
'xsd:string'),
187 'matriculation' => array(
'name' =>
'matriculation',
'type' =>
'xsd:string'),
188 'active' => array(
'name' =>
'active',
'type' =>
'xsd:int'),
189 'accepted_agreement' => array(
'name' =>
'accepted_agreement',
'type' =>
'xsd:boolean'),
190 'approve_date' => array(
'name' =>
'approve_date',
'type' =>
'xsd:string'),
191 'user_skin' => array(
'name' =>
'user_skin',
'type' =>
'xsd:string'),
192 'user_style' => array(
'name' =>
'user_style',
'type' =>
'xsd:string'),
193 'user_language' => array(
'name' =>
'user_language',
'type' =>
'xsd:string'),
194 'import_id' => array(
'name' =>
'import_id',
'type' =>
'xsd:string')
199 $this->server->register(
'lookupUser',
200 array(
'sid' =>
'xsd:string',
201 'user_name' =>
'xsd:string'),
202 array(
'usr_id' =>
'xsd:int'),
204 SERVICE_NAMESPACE.
'#lookupUser',
207 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.');
211 $this->server->register(
'getUser',
212 array(
'sid' =>
'xsd:string',
213 'user_id' =>
'xsd:int'),
214 array(
'user_data' =>
'tns:ilUserData'),
216 SERVICE_NAMESPACE.
'#getUser',
219 'ILIAS getUser(): get complete set of user data.');
221 $this->server->register(
'updateUser',
222 array(
'sid' =>
'xsd:string',
223 'user_data' =>
'tns:ilUserData'),
224 array(
'success' =>
'xsd:boolean'),
226 SERVICE_NAMESPACE.
'#updateUser',
229 'ILIAS updateUser(). DEPRECATED: Use importUsers() for modifications of user data. Updates all user data. '.
230 'Use getUser(), then modify desired fields and finally start the updateUser() call.');
232 $this->server->register(
'updatePassword',
233 array(
'sid' =>
'xsd:string',
234 'user_id' =>
'xsd:int',
235 'new_password' =>
'xsd:string'),
236 array(
'success' =>
'xsd:boolean'),
238 SERVICE_NAMESPACE.
'#updatePassword',
241 'ILIAS updatePassword(). Updates password of given user. Password must be MD5 hash');
245 $this->server->register(
'addUser',
246 array(
'sid' =>
'xsd:string',
247 'user_data' =>
'tns:ilUserData',
248 'global_role_id' =>
'xsd:int'),
249 array(
'user_id' =>
'xsd:int'),
251 SERVICE_NAMESPACE.
'#addUser',
254 'ILIAS addUser() user. DEPRECATED: Since it is not possible to add new user data fields '.
255 'without breaking the backward compatability, this method is deprecated. Please use importUser() instead. '.
256 'Add new ILIAS user. Requires complete or subset of user_data structure');
259 $this->server->register(
'deleteUser',
260 array(
'sid' =>
'xsd:string',
261 'user_id' =>
'xsd:int'),
262 array(
'success' =>
'xsd:boolean'),
264 SERVICE_NAMESPACE.
'#deleteUser',
267 'ILIAS deleteUser(). Deletes all user related data (Bookmarks, Mails ...)');
270 $this->server->register(
'addCourse',
271 array(
'sid' =>
'xsd:string',
272 'target_id' =>
'xsd:int',
273 'crs_xml' =>
'xsd:string'),
274 array(
'course_id' =>
'xsd:int'),
276 SERVICE_NAMESPACE.
'#addCourse',
279 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure');
282 $this->server->register(
'deleteCourse',
283 array(
'sid' =>
'xsd:string',
284 'course_id' =>
'xsd:int'),
285 array(
'success' =>
'xsd:boolean'),
287 SERVICE_NAMESPACE.
'#deleteCourse',
290 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in '.
291 ' the ILIAS administration. ');
293 $this->server->register(
'assignCourseMember',
294 array(
'sid' =>
'xsd:string',
295 'course_id' =>
'xsd:int',
296 'user_id' =>
'xsd:int',
297 'type' =>
'xsd:string'),
298 array(
'success' =>
'xsd:boolean'),
300 SERVICE_NAMESPACE.
'#assignCourseMember',
303 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"');
306 $this->server->register(
'excludeCourseMember',
307 array(
'sid' =>
'xsd:string',
308 'course_id' =>
'xsd:int',
309 'user_id' =>
'xsd:int'),
310 array(
'success' =>
'xsd:boolean'),
312 SERVICE_NAMESPACE.
'#excludeCourseMember',
315 'ILIAS excludeCourseMember(). Excludes an user from an existing course.');
318 $this->server->register(
'isAssignedToCourse',
319 array(
'sid' =>
'xsd:string',
320 'course_id' =>
'xsd:int',
321 'user_id' =>
'xsd:int'),
322 array(
'role' =>
'xsd:int'),
324 SERVICE_NAMESPACE.
'#isAssignedToCourse',
327 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. '.
328 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor');
331 $this->server->register(
'getCourseXML',
332 array(
'sid' =>
'xsd:string',
333 'course_id' =>
'xsd:int'),
334 array(
'xml' =>
'xsd:string'),
336 SERVICE_NAMESPACE.
'#getCourseXML',
339 'ILIAS getCourseXML(). Get a xml description of a specific course.');
342 $this->server->register(
'updateCourse',
343 array(
'sid' =>
'xsd:string',
344 'course_id' =>
'xsd:int',
345 'xml' =>
'xsd:string'),
346 array(
'success' =>
'xsd:boolean'),
348 SERVICE_NAMESPACE.
'#updateCourse',
351 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a '.
352 'given xml description');
355 $this->server->register(
'getObjIdByImportId',
356 array(
'sid' =>
'xsd:string',
357 'import_id' =>
'xsd:string'),
358 array(
'obj_id' =>
'xsd:int'),
360 SERVICE_NAMESPACE.
'#getCourseIdByImportId',
363 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.');
367 $this->server->register(
'getRefIdsByImportId',
368 array(
'sid' =>
'xsd:string',
369 'import_id' =>
'xsd:string'),
370 array(
'ref_ids' =>
'tns:intArray'),
372 SERVICE_NAMESPACE.
'#getRefIdsByImportId',
375 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.');
378 $this->server->register(
'getRefIdsByObjId',
379 array(
'sid' =>
'xsd:string',
380 'obj_id' =>
'xsd:string'),
381 array(
'ref_ids' =>
'tns:intArray'),
383 SERVICE_NAMESPACE.
'#getRefIdsByObjId',
386 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.');
389 $this->server->register(
'getObjectByReference',
390 array(
'sid' =>
'xsd:string',
391 'reference_id' =>
'xsd:int',
392 'user_id' =>
'xsd:int'),
393 array(
'object_xml' =>
'xsd:string'),
395 SERVICE_NAMESPACE.
'#getObjectByReference',
398 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, '.
399 'this methods also checks the permissions of that user on the object.');
401 $this->server->register(
'getObjectsByTitle',
402 array(
'sid' =>
'xsd:string',
403 'title' =>
'xsd:string',
404 'user_id' =>
'xsd:int'),
405 array(
'object_xml' =>
'xsd:string'),
407 SERVICE_NAMESPACE.
'#getObjectsByTitle',
410 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. '.
411 'If a user id is given this method also checks the permissions of that user on the object.');
413 $this->server->register(
'searchObjects',
414 array(
'sid' =>
'xsd:string',
415 'types' =>
'tns:stringArray',
416 'key' =>
'xsd:string',
417 'combination' =>
'xsd:string',
418 'user_id' =>
'xsd:int'),
419 array(
'object_xml' =>
'xsd:string'),
421 SERVICE_NAMESPACE.
'#searchObjects',
424 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" '.
425 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); '.
426 ' If an optional user id is given, this methods also return the permissions for that user '.
427 'on the found objects');
429 $this->server->register(
'getTreeChilds',
430 array(
'sid' =>
'xsd:string',
431 'ref_id' =>
'xsd:int',
432 'types' =>
'tns:stringArray',
433 'user_id' =>
'xsd:int'),
434 array(
'object_xml' =>
'xsd:string'),
436 SERVICE_NAMESPACE.
'#getTreeChilds',
439 'ILIAS getTreeChilds(): Get all child objects of a given object.'.
440 'Choose array of types to filter the output. Choose empty type array to receive all object types');
442 $this->server->register(
'getXMLTree',
443 array(
'sid' =>
'xsd:string',
444 'ref_id' =>
'xsd:int',
445 'types' =>
'tns:stringArray',
446 'user_id' =>
'xsd:int'),
447 array(
'object_xml' =>
'xsd:string'),
449 SERVICE_NAMESPACE.
'#getXMLTree',
452 'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.');
456 $this->server->register(
'addObject',
457 array(
'sid' =>
'xsd:string',
458 'target_id' =>
'xsd:int',
459 'object_xml' =>
'xsd:string'),
460 array(
'ref_id' =>
'xsd:int'),
462 SERVICE_NAMESPACE.
'#addObject',
465 'ILIAS addObject. Create new object based on xml description under a given node '.
466 '("category,course,group or folder). Return created reference id of the new object.' );
468 $this->server->register(
'updateObjects',
469 array(
'sid' =>
'xsd:string',
470 'object_xml' =>
'xsd:string'),
471 array(
'success' =>
'xsd:boolean'),
473 SERVICE_NAMESPACE.
'#updateObjects',
476 'ILIAS updateObjects. Update object data (title,description,owner)');
478 $this->server->register(
'addReference',
479 array(
'sid' =>
'xsd:string',
480 'source_id' =>
'xsd:int',
481 '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');
489 $this->server->register(
'deleteObject',
490 array(
'sid' =>
'xsd:string',
491 'reference_id' =>
'xsd:int'),
492 array(
'success' =>
'xsd:boolean'),
494 SERVICE_NAMESPACE.
'#deleteObject',
497 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ');
500 $this->server->register(
'removeFromSystemByImportId',
501 array(
'sid' =>
'xsd:string',
502 'import_id' =>
'xsd:string'),
503 array(
'success' =>
'xsd:boolean'),
505 SERVICE_NAMESPACE.
'#removeFromSystemByImportId',
508 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the '.
509 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use '.
510 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.');
512 $this->server->register(
'addUserRoleEntry',
513 array(
'sid' =>
'xsd:string',
514 'user_id' =>
'xsd:int',
515 'role_id' =>
'xsd:int'),
516 array(
'success' =>
'xsd:boolean'),
518 SERVICE_NAMESPACE.
'#addUserRoleEntry',
521 'ILIAS addUserRoleEntry. Assign user to role.');
523 $this->server->register(
'deleteUserRoleEntry',
524 array(
'sid' =>
'xsd:string',
525 'user_id' =>
'xsd:int',
526 'role_id' =>
'xsd:int'),
527 array(
'success' =>
'xsd:boolean'),
529 SERVICE_NAMESPACE.
'#deleteUserRoleEntry',
532 'ILIAS deleteUserRoleEntry. Deassign user from role.');
536 $this->server->wsdl->addComplexType(
'ilOperation',
541 array(
'ops_id' => array(
'name' =>
'ops_id',
542 'type' =>
'xsd:int'),
543 'operation' => array(
'name' =>
'operation',
544 'type' =>
'xsd:string'),
545 'description' => array(
'name' =>
'description',
546 'type' =>
'xsd:string')));
548 $this->server->wsdl->addComplexType(
'ilOperations',
554 array(array(
'ref' =>
'SOAP-ENC:arrayType',
555 'wsdl:arrayType' =>
'tns:ilOperation[]')),
557 $this->server->register(
'getOperations',
558 array(
'sid' =>
'xsd:string'),
559 array(
'operations' =>
'tns:ilOperations'),
561 SERVICE_NAMESPACE.
'#getOperations',
564 'ILIAS getOperations(): get complete set of RBAC operations.');
566 $this->server->register(
'revokePermissions',
567 array(
'sid' =>
'xsd:string',
568 'ref_id' =>
'xsd:int',
569 'role_id' =>
'xsd:int'),
570 array(
'success' =>
'xsd:boolean'),
572 SERVICE_NAMESPACE.
'#revokePermissions',
575 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.');
577 $this->server->wsdl->addComplexType(
'ilOperationIds',
583 array(array(
'ref' =>
'SOAP-ENC:arrayType',
584 'wsdl:arrayType' =>
'xsd:int[]')),
587 $this->server->register(
'grantPermissions',
588 array(
'sid' =>
'xsd:string',
589 'ref_id' =>
'xsd:int',
590 'role_id' =>
'xsd:int',
591 'operations' =>
'tns:intArray'),
592 array(
'success' =>
'xsd:boolean'),
594 SERVICE_NAMESPACE.
'#grantPermissions',
597 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. '.
598 '(Substitutes existing permission settings)');
600 $this->server->register(
'getLocalRoles',
601 array(
'sid' =>
'xsd:string',
602 'ref_id' =>
'xsd:int'),
603 array(
'role_xml' =>
'xsd:string'),
605 SERVICE_NAMESPACE.
'#getLocalRoles',
608 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.');
610 $this->server->register(
'getUserRoles',
611 array(
'sid' =>
'xsd:string',
612 'user_id' =>
'xsd:int'),
613 array(
'role_xml' =>
'xsd:string'),
615 SERVICE_NAMESPACE.
'#getLocalRoles',
618 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ');
620 $this->server->register(
'addRole',
621 array(
'sid' =>
'xsd:string',
622 'target_id' =>
'xsd:int',
623 'obj_xml' =>
'xsd:string'),
624 array(
'role_ids' =>
'tns:intArray'),
626 SERVICE_NAMESPACE.
'#addRole',
629 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
630 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.');
632 $this->server->register(
'deleteRole',
633 array(
'sid' =>
'xsd:string',
634 'role_id' =>
'xsd:int'),
635 array(
'success' =>
'xsd:boolean'),
637 SERVICE_NAMESPACE.
'#deleteRole',
640 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user');
642 $this->server->register(
'addRoleFromTemplate',
643 array(
'sid' =>
'xsd:string',
644 'target_id' =>
'xsd:int',
645 'obj_xml' =>
'xsd:string',
646 'role_template_id' =>
'xsd:int'),
647 array(
'role_ids' =>
'tns:intArray'),
649 SERVICE_NAMESPACE.
'#addRole',
652 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
653 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. '.
654 'In addition to addRole the template permissions will be copied from the given role template');
656 $this->server->register(
'getObjectTreeOperations',
657 array(
'sid' =>
'xsd:string',
658 'ref_id' =>
'xsd:int',
659 'user_id' =>
'xsd:int'),
660 array(
'operations' =>
'tns:ilOperations'),
662 SERVICE_NAMESPACE.
'#getPermissionsForObject',
665 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of '.
666 'an object for a specific user. Returns array of granted operations or empty array');
668 $this->server->register(
'addGroup',
669 array(
'sid' =>
'xsd:string',
670 'target_id' =>
'xsd:int',
671 'group_xml' =>
'xsd:string'),
672 array(
'ref_id' =>
'xsd:int'),
674 SERVICE_NAMESPACE.
'#addGroup',
677 'ILIAS addGroup(): Add grop according to valid group XML '.
678 '@See ilias_group_0_1.dtd');
680 $this->server->register(
'groupExists',
681 array(
'sid' =>
'xsd:string',
682 'title' =>
'xsd:string'),
683 array(
'exists' =>
'xsd:boolean'),
685 SERVICE_NAMESPACE.
'#groupExists',
688 'ILIAS addGroup(): Check if group with given name exists. ');
692 $this->server->register(
'getGroup',
693 array(
'sid' =>
'xsd:string',
694 'ref_id' =>
'xsd:int'),
695 array(
'group_xml' =>
'xsd:string'),
697 SERVICE_NAMESPACE.
'#getGroup',
700 'ILIAS getGroup(): get xml description of grouip with given reference id.');
703 $this->server->register(
'assignGroupMember',
704 array(
'sid' =>
'xsd:string',
705 'group_id' =>
'xsd:int',
706 'user_id' =>
'xsd:int',
707 'type' =>
'xsd:string'),
708 array(
'success' =>
'xsd:boolean'),
710 SERVICE_NAMESPACE.
'#assignGroupMember',
713 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"');
716 $this->server->register(
'excludeGroupMember',
717 array(
'sid' =>
'xsd:string',
718 'group_id' =>
'xsd:int',
719 'user_id' =>
'xsd:int'),
720 array(
'success' =>
'xsd:boolean'),
722 SERVICE_NAMESPACE.
'#excludeGroupMember',
725 'ILIAS excludeGroupMember(). Excludes an user from an existing group.');
728 $this->server->register(
'isAssignedToGroup',
729 array(
'sid' =>
'xsd:string',
730 'group_id' =>
'xsd:int',
731 'user_id' =>
'xsd:int'),
732 array(
'role' =>
'xsd:int'),
734 SERVICE_NAMESPACE.
'#isAssignedToGroup',
737 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. '.
738 'Returns 0 => not assigned, 1 => group admin, 2 => group member');
743 $this->server->register(
'sendMail',
744 array(
'sid' =>
'xsd:string',
745 'rcp_to' =>
'xsd:string',
746 'rcp_cc' =>
'xsd:string',
747 'rcp_bcc' =>
'xsd:string',
748 'sender' =>
'xsd:string',
749 'subject' =>
'xsd:string',
750 'message' =>
'xsd:string',
751 'attachments' =>
'xsd:string'),
752 array(
'status' =>
'xsd:boolean'),
754 SERVICE_NAMESPACE.
'#sendMail',
757 'ILIAS sendMail(): Send mime mails according to xml description. Only for internal usage '.
758 'Syntax, parameters may change in future releases');
760 $this->server->register(
'ilClone',
761 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
762 array(
'new_ref_id' =>
'xsd:int'),
764 SERVICE_NAMESPACE.
'#ilClone',
767 'ILIAS ilClone(): Only for internal usage.'.
768 'Syntax, parameters may change in future releases. ');
770 $this->server->register(
'handleECSTasks',
771 array(
'sid' =>
'xsd:string'),
772 array(
'success' =>
'xsd:boolean'),
774 SERVICE_NAMESPACE.
'#handleECSTasks',
777 'ILIAS handleECSTasks(): Only for internal usage.'.
778 'Syntax, parameters may change in future releases. ');
780 $this->server->register(
'ilCloneDependencies',
781 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
782 array(
'success' =>
'xsd:boolean'),
784 SERVICE_NAMESPACE.
'#ilCloneDependencies',
787 'ILIAS ilCloneDependencies(): Only for internal usage.'.
788 'Syntax, parameters may change in future releases. ');
790 $this->server->register(
'saveQuestionResult',
791 array(
'sid' =>
'xsd:string',
792 'user_id' =>
'xsd:int',
793 'test_id' =>
'xsd:int',
794 'question_id' =>
'xsd:int',
796 'solution' =>
'tns:stringArray'),
797 array(
'status' =>
'xsd:boolean'),
799 SERVICE_NAMESPACE.
'#saveQuestionResult',
802 'ILIAS saveQuesionResult: Typically called from an external assessment question to save the user input. DEPRECATED since ILIAS 3.9');
804 $this->server->register(
'saveQuestion',
805 array(
'sid' =>
'xsd:string',
806 'active_id' =>
'xsd:long',
807 'question_id' =>
'xsd:long',
809 'solution' =>
'tns:stringArray'),
810 array(
'status' =>
'xsd:boolean'),
812 SERVICE_NAMESPACE.
'#saveQuestion',
815 '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.');
817 $this->server->register(
'getQuestionSolution',
818 array(
'sid' =>
'xsd:string',
819 'active_id' =>
'xsd:long',
820 'question_id' =>
'xsd:int',
821 'pass' =>
'xsd:int'),
822 array(
'solution' =>
'tns:stringArray'),
824 SERVICE_NAMESPACE.
'#getQuestionSolution',
827 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.');
829 $this->server->register(
'getStructureObjects',
830 array(
'sid' =>
'xsd:string',
831 'ref_id' =>
'xsd:int'),
832 array(
'xml' =>
'xsd:string'),
834 SERVICE_NAMESPACE.
'#getStructureObjects',
837 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)');
840 $this->server->register(
'importUsers',
841 array(
'sid' =>
'xsd:string',
842 'folder_id' =>
'xsd:int',
843 'usr_xml' =>
'xsd:string',
844 'conflict_rule' =>
'xsd:int',
845 'send_account_mail' =>
'xsd:int'),
846 array(
'protocol' =>
'xsd:string'),
848 SERVICE_NAMESPACE.
'#importUsers',
851 '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');
853 $this->server->register(
'getRoles',
854 array(
'sid' =>
'xsd:string',
855 'role_type' =>
'xsd:string',
856 'id' =>
'xsd:string'),
857 array(
'role_xml' =>
'xsd:string'),
859 SERVICE_NAMESPACE.
'#getRoles',
862 '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');
864 $this->server->register(
'getUsersForContainer',
865 array(
'sid' =>
'xsd:string',
866 'ref_id' =>
'xsd:int',
867 'attach_roles' =>
'xsd:int',
868 'active' =>
'xsd:int'),
869 array(
'user_xml' =>
'xsd:string'),
871 SERVICE_NAMESPACE.
'#getUsersForContainer',
874 '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');
876 $this->server->register(
'getUsersForRole',
877 array(
'sid' =>
'xsd:string',
878 'role_id' =>
'xsd:int',
879 'attach_roles' =>
'xsd:int',
880 'active' =>
'xsd:int'),
881 array(
'user_xml' =>
'xsd:string'),
883 SERVICE_NAMESPACE.
'#getUsersForRole',
886 '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');
888 $this->server->register(
'searchUser',
889 array(
'sid' =>
'xsd:string',
890 'key_fields' =>
'tns:stringArray',
891 'query_operator' =>
'xsd:string',
892 'key_values' =>
'tns:stringArray',
893 'attach_roles' =>
'xsd:int',
894 'active' =>
'xsd:int'),
896 array(
'user_xml' =>
'xsd:string'),
898 SERVICE_NAMESPACE.
'#searchUsers',
901 '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');
905 $this->server->register(
'hasNewMail',
906 array(
'sid' =>
'xsd:string'),
907 array(
'status' =>
'xsd:boolean'),
909 SERVICE_NAMESPACE.
'#hasNewMail',
912 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.');
914 $this->server->register(
'getNIC',
915 array(
'sid' =>
'xsd:string'),
916 array(
'xmlresultset' =>
'xsd:string'),
918 SERVICE_NAMESPACE.
'#getNIC',
921 'ILIAS getNIC(): DEPRECATED: use getClientInfoXML instead. was: return client information from current client as xml result set containing installation_id, installation_version, installation_url, installation_description, installation_language_default as columns');
923 $this->server->register(
'getExerciseXML',
924 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int',
"attachment_mode" =>
"xsd:int"),
925 array(
'exercisexml' =>
'xsd:string'),
927 SERVICE_NAMESPACE.
'#getExerciseXML',
930 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
932 $this->server->register(
'addExercise',
933 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
934 array(
'refid' =>
'xsd:int'),
936 SERVICE_NAMESPACE.
'#addExercise',
939 '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!');
941 $this->server->register(
'updateExercise',
942 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
943 array(
'success' =>
'xsd:boolean'),
945 SERVICE_NAMESPACE.
'#updateExercise',
948 '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.!');
950 $this->server->register(
'getFileXML',
951 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'attachment_mode' =>
'xsd:int'),
952 array(
'filexml' =>
'xsd:string'),
954 SERVICE_NAMESPACE.
'#getFileXML',
957 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
959 $this->server->register(
'addFile',
960 array(
'sid' =>
'xsd:string',
'target_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
961 array(
'refid' =>
'xsd:int'),
963 SERVICE_NAMESPACE.
'#addFile',
966 '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!');
968 $this->server->register(
'updateFile',
969 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
970 array(
'success' =>
'xsd:boolean'),
972 SERVICE_NAMESPACE.
'#updateFile',
975 '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.!');
978 $this->server->register(
'getUserXML',
979 array(
'sid' =>
'xsd:string',
'user_ids' =>
'tns:intArray',
'attach_roles' =>
'xsd:int'),
980 array(
'xml' =>
'xsd:string'),
982 SERVICE_NAMESPACE.
'#resolveUsers',
985 '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');
989 $this->server->register(
'getObjIdsByRefIds',
990 array(
'sid' =>
'xsd:string',
991 'ref_ids' =>
'tns:intArray'),
992 array(
'obj_ids' =>
'tns:intArray'),
994 SERVICE_NAMESPACE.
'#getRefIdsByImportId',
997 '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');
999 $this->server->register(
'updateGroup',
1000 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1001 array(
'success' =>
'xsd:boolean'),
1003 SERVICE_NAMESPACE.
'#updateGroup',
1006 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).');
1010 $this->server->register(
'getIMSManifestXML',
1011 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1012 array(
'xml' =>
'xsd:string'),
1014 SERVICE_NAMESPACE.
'#getIMSManifestXML',
1017 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid');
1020 $this->server->register(
'copyObject',
1021 array(
'sid' =>
'xsd:string',
'xml' =>
'xsd:string'),
1022 array(
'xml' =>
'xsd:int'),
1024 SERVICE_NAMESPACE.
'#copyObject',
1027 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.');
1029 $this->server->register(
'moveObject',
1030 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'target_id' =>
'xsd:int'),
1031 array(
'result' =>
'xsd:boolean'),
1033 SERVICE_NAMESPACE.
'#moveObject',
1036 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.');
1039 $this->server->register (
'getTestResults',
1040 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'sum_only' =>
'xsd:boolean'),
1041 array(
'xml' =>
'xsd:string'),
1043 SERVICE_NAMESPACE.
'#getTestResults',
1046 'ILIAS getTestResults(): returns XMLResultSet with
1047 sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points
1048 sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points');
1051 $this->server->register (
'getCoursesForUser',
1052 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1053 array(
'xml' =>
'xsd:string'),
1055 SERVICE_NAMESPACE.
'#getCoursesForUser',
1058 '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.');
1060 $this->server->register (
'getGroupsForUser',
1061 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1062 array(
'xml' =>
'xsd:string'),
1064 SERVICE_NAMESPACE.
'#getGroupsForUser',
1067 '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.');
1069 $this->server->register (
'getPathForRefId',
1070 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1071 array(
'xml' =>
'xsd:string'),
1073 SERVICE_NAMESPACE.
'#getPathForRefId',
1076 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.');
1078 $this->server->register (
'searchRoles',
1079 array(
'sid' =>
'xsd:string',
'key' =>
'xsd:string',
'combination' =>
'xsd:string',
'role_type' =>
'xsd:string'),
1080 array(
'xml' =>
'xsd:string'),
1082 SERVICE_NAMESPACE.
'#searchRoles',
1085 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.');
1087 $this->server->register (
'getInstallationInfoXML',
1089 array(
'xml' =>
'xsd:string'),
1091 SERVICE_NAMESPACE.
'#getInstallationInfoXML',
1094 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd');
1096 $this->server->register (
'getClientInfoXML',
1097 array(
'clientid' =>
'xsd:string'),
1098 array(
'xml' =>
'xsd:string'),
1100 SERVICE_NAMESPACE.
'#getClientInfoXML',
1103 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id');