ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilNusoapUserAdministrationAdapter.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2006 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
24 
34 include_once './webservice/soap/lib/nusoap.php';
35 include_once './webservice/soap/include/inc.soap_functions.php';
36 
38 {
39  /*
40  * @var object Nusoap-Server
41  */
42  var $server = null;
43 
44 
45  function ilNusoapUserAdministrationAdapter($a_use_wsdl = true)
46  {
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;
52  $this->server = new soap_server();
53  $this->server->decode_utf8 = false;
54  $this->server->class = "ilSoapFunctions";
55 
56  if($a_use_wsdl)
57  {
58  $this->__enableWSDL();
59  }
60 
61  $this->__registerMethods();
62 
63 
64  }
65 
66  function start()
67  {
68  global $HTTP_RAW_POST_DATA;
69 
70  $this->server->service($HTTP_RAW_POST_DATA);
71  exit();
72  }
73 
74  // PRIVATE
75  function __enableWSDL()
76  {
77  $this->server->configureWSDL(SERVICE_NAME,SERVICE_NAMESPACE);
78 
79  return true;
80  }
81 
82 
83  function __registerMethods()
84  {
85 
86  // Add useful complex types. E.g. array("a","b") or array(1,2)
87  $this->server->wsdl->addComplexType('intArray',
88  'complexType',
89  'array',
90  '',
91  'SOAP-ENC:Array',
92  array(),
93  array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:int[]')),
94  'xsd:int');
95 
96  $this->server->wsdl->addComplexType('stringArray',
97  'complexType',
98  'array',
99  '',
100  'SOAP-ENC:Array',
101  array(),
102  array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')),
103  'xsd:string');
104 
105  $this->server->wsdl->addComplexType('doubleArray',
106  'complexType',
107  'array',
108  '',
109  'SOAP-ENC:Array',
110  array(),
111  array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:double[]')),
112  'xsd:double');
113 
114  // It's not possible to register classes in nusoap
115 
116  // login()
117  $this->server->register('login',
118  array('client' => 'xsd:string',
119  'username' => 'xsd:string',
120  'password' => 'xsd:string'),
121  array('sid' => 'xsd:string'),
122  SERVICE_NAMESPACE,
123  SERVICE_NAMESPACE.'#login',
124  SERVICE_STYLE,
125  SERVICE_USE,
126  'ILIAS login function');
127 
128  // loginCAS()
129  $this->server->register('loginCAS',
130  array('client' => 'xsd:string',
131  'PT' => 'xsd:string',
132  'user' => 'xsd:string'),
133  array('sid' => 'xsd:string'),
134  SERVICE_NAMESPACE,
135  SERVICE_NAMESPACE.'#loginCAS',
136  SERVICE_STYLE,
137  SERVICE_USE,
138  'ILIAS login function via CAS');
139  // loginLDAP()
140  $this->server->register('loginLDAP',
141  array('client' => 'xsd:string',
142  'username' => 'xsd:string',
143  'password' => 'xsd:string'),
144  array('sid' => 'xsd:string'),
145  SERVICE_NAMESPACE,
146  SERVICE_NAMESPACE.'#login',
147  SERVICE_STYLE,
148  SERVICE_USE,
149  'ILIAS login function via LDAP');
150 
151  // loginStudipUser()
152  $this->server->register('loginStudipUser',
153  array('sid' => 'xsd:string',
154  'user_id' => 'xsd:int'),
155  array('sid' => 'xsd:string'),
156  SERVICE_NAMESPACE,
157  SERVICE_NAMESPACE.'#loginStudipUser',
158  SERVICE_STYLE,
159  SERVICE_USE,
160  'ILIAS login function for Stud.IP-Connection. DEPRECATED: this method will be removed in ILIAS 5.3.');
161 
162 
163  // logout()
164  $this->server->register('logout',
165  array('sid' => 'xsd:string'),
166  array('success' => 'xsd:boolean'),
167  SERVICE_NAMESPACE,
168  SERVICE_NAMESPACE.'#logout',
169  SERVICE_STYLE,
170  SERVICE_USE,
171  'ILIAS logout function');
172  // user_data definitions
173  $this->server->wsdl->addComplexType('ilUserData',
174  'complexType',
175  'struct',
176  'all',
177  '',
178  array('usr_id' => array('name' => 'usr_id','type' => 'xsd:int'),
179  'login' => array('name' => 'login', 'type' => 'xsd:string'),
180  'passwd' => array('name' => 'passwd', 'type' => 'xsd:string'),
181  'firstname' => array('name' => 'firstname', 'type' => 'xsd:string'),
182  'lastname' => array('name' => 'lastname', 'type' => 'xsd:string'),
183  'title' => array('name' => 'title', 'type' => 'xsd:string'),
184  'gender' => array('name' => 'gender', 'type' => 'xsd:string'),
185  'email' => array('name' => 'email', 'type' => 'xsd:string'),
186  'institution' => array('name' => 'institution', 'type' => 'xsd:string'),
187  'street' => array('name' => 'street', 'type' => 'xsd:string'),
188  'city' => array('name' => 'city', 'type' => 'xsd:string'),
189  'zipcode' => array('name' => 'zipcode', 'type' => 'xsd:string'),
190  'country' => array('name' => 'country', 'type' => 'xsd:string'),
191  'phone_office' => array('name' => 'phone_office', 'type' => 'xsd:string'),
192  'last_login' => array('name' => 'last_login', 'type' => 'xsd:string'),
193  'last_update' => array('name' => 'last_update', 'type' => 'xsd:string'),
194  'create_date' => array('name' => 'create_date', 'type' => 'xsd:string'),
195  'hobby' => array('name' => 'hobby', 'type' => 'xsd:string'),
196  'department' => array('name' => 'department', 'type' => 'xsd:string'),
197  'phone_home' => array('name' => 'phone_home', 'type' => 'xsd:string'),
198  'phone_mobile' => array('name' => 'phone_mobile', 'type' => 'xsd:string'),
199  'fax' => array('name' => 'fax', 'type' => 'xsd:string'),
200  'time_limit_owner' => array('name' => 'time_limit_owner', 'type' => 'xsd:int'),
201  'time_limit_unlimited' => array('name' => 'time_limit_unlimited', 'type' => 'xsd:int'),
202  'time_limit_from' => array('name' => 'time_limit_from', 'type' => 'xsd:int'),
203  'time_limit_until' => array('name' => 'time_limit_until', 'type' => 'xsd:int'),
204  'time_limit_message' => array('name' => 'time_limit_message', 'type' => 'xsd:int'),
205  'referral_comment' => array('name' => 'referral_comment', 'type' => 'xsd:string'),
206  'matriculation' => array('name' => 'matriculation', 'type' => 'xsd:string'),
207  'active' => array('name' => 'active', 'type' => 'xsd:int'),
208  'accepted_agreement' => array('name' => 'accepted_agreement','type' => 'xsd:boolean'),
209  'approve_date' => array('name' => 'approve_date', 'type' => 'xsd:string'),
210  'user_skin' => array('name' => 'user_skin', 'type' => 'xsd:string'),
211  'user_style' => array('name' => 'user_style', 'type' => 'xsd:string'),
212  'user_language' => array('name' => 'user_language', 'type' => 'xsd:string'),
213  'import_id' => array('name' => 'import_id', 'type' => 'xsd:string')
214  ));
215 
216 
217  // lookupUser()
218  $this->server->register('lookupUser',
219  array('sid' => 'xsd:string',
220  'user_name' => 'xsd:string'),
221  array('usr_id' => 'xsd:int'),
222  SERVICE_NAMESPACE,
223  SERVICE_NAMESPACE.'#lookupUser',
224  SERVICE_STYLE,
225  SERVICE_USE,
226  'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.');
227 
228 
229  // getUser()
230  $this->server->register('getUser',
231  array('sid' => 'xsd:string',
232  'user_id' => 'xsd:int'),
233  array('user_data' => 'tns:ilUserData'),
234  SERVICE_NAMESPACE,
235  SERVICE_NAMESPACE.'#getUser',
236  SERVICE_STYLE,
237  SERVICE_USE,
238  'ILIAS getUser(): get complete set of user data.');
239  // updateUser()
240  $this->server->register('updateUser',
241  array('sid' => 'xsd:string',
242  'user_data' => 'tns:ilUserData'),
243  array('success' => 'xsd:boolean'),
244  SERVICE_NAMESPACE,
245  SERVICE_NAMESPACE.'#updateUser',
246  SERVICE_STYLE,
247  SERVICE_USE,
248  'ILIAS updateUser(). DEPRECATED: Use importUsers() for modifications of user data. Updates all user data. '.
249  'Use getUser(), then modify desired fields and finally start the updateUser() call.');
250  // Update password
251  $this->server->register('updatePassword',
252  array('sid' => 'xsd:string',
253  'user_id' => 'xsd:int',
254  'new_password' => 'xsd:string'),
255  array('success' => 'xsd:boolean'),
256  SERVICE_NAMESPACE,
257  SERVICE_NAMESPACE.'#updatePassword',
258  SERVICE_STYLE,
259  SERVICE_USE,
260  'ILIAS updatePassword(). Updates password of given user. Password must be MD5 hash. DEPRECATED: Use importUsers() for modifications of user data.');
261 
262 
263  // addUser()
264  $this->server->register('addUser',
265  array('sid' => 'xsd:string',
266  'user_data' => 'tns:ilUserData',
267  'global_role_id' => 'xsd:int'),
268  array('user_id' => 'xsd:int'),
269  SERVICE_NAMESPACE,
270  SERVICE_NAMESPACE.'#addUser',
271  SERVICE_STYLE,
272  SERVICE_USE,
273  'ILIAS addUser() user. DEPRECATED: Since it is not possible to add new user data fields '.
274  'without breaking the backward compatability, this method is deprecated. Please use importUser() instead. '.
275  'Add new ILIAS user. Requires complete or subset of user_data structure');
276 
277  // deleteUser()
278  $this->server->register('deleteUser',
279  array('sid' => 'xsd:string',
280  'user_id' => 'xsd:int'),
281  array('success' => 'xsd:boolean'),
282  SERVICE_NAMESPACE,
283  SERVICE_NAMESPACE.'#deleteUser',
284  SERVICE_STYLE,
285  SERVICE_USE,
286  'ILIAS deleteUser(). Deletes all user related data (Bookmarks, Mails ...). DEPRECATED: Use importUsers() for deletion of user data.');
287 
288  // addCourse()
289  $this->server->register('addCourse',
290  array('sid' => 'xsd:string',
291  'target_id' => 'xsd:int',
292  'crs_xml' => 'xsd:string'),
293  array('course_id' => 'xsd:int'),
294  SERVICE_NAMESPACE,
295  SERVICE_NAMESPACE.'#addCourse',
296  SERVICE_STYLE,
297  SERVICE_USE,
298  'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure');
299 
300  // deleteCourse()
301  $this->server->register('deleteCourse',
302  array('sid' => 'xsd:string',
303  'course_id' => 'xsd:int'),
304  array('success' => 'xsd:boolean'),
305  SERVICE_NAMESPACE,
306  SERVICE_NAMESPACE.'#deleteCourse',
307  SERVICE_STYLE,
308  SERVICE_USE,
309  'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in '.
310  ' the ILIAS administration. ');
311  // assignCourseMember()
312  $this->server->register('assignCourseMember',
313  array('sid' => 'xsd:string',
314  'course_id' => 'xsd:int',
315  'user_id' => 'xsd:int',
316  'type' => 'xsd:string'),
317  array('success' => 'xsd:boolean'),
318  SERVICE_NAMESPACE,
319  SERVICE_NAMESPACE.'#assignCourseMember',
320  SERVICE_STYLE,
321  SERVICE_USE,
322  'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"');
323 
324  // excludeCourseMember()
325  $this->server->register('excludeCourseMember',
326  array('sid' => 'xsd:string',
327  'course_id' => 'xsd:int',
328  'user_id' => 'xsd:int'),
329  array('success' => 'xsd:boolean'),
330  SERVICE_NAMESPACE,
331  SERVICE_NAMESPACE.'#excludeCourseMember',
332  SERVICE_STYLE,
333  SERVICE_USE,
334  'ILIAS excludeCourseMember(). Excludes an user from an existing course.');
335 
336  // isAssignedToCourse()
337  $this->server->register('isAssignedToCourse',
338  array('sid' => 'xsd:string',
339  'course_id' => 'xsd:int',
340  'user_id' => 'xsd:int'),
341  array('role' => 'xsd:int'),
342  SERVICE_NAMESPACE,
343  SERVICE_NAMESPACE.'#isAssignedToCourse',
344  SERVICE_STYLE,
345  SERVICE_USE,
346  'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. '.
347  'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor');
348 
349  // getCourseXML($sid,$course_id)
350  $this->server->register('getCourseXML',
351  array('sid' => 'xsd:string',
352  'course_id' => 'xsd:int'),
353  array('xml' => 'xsd:string'),
354  SERVICE_NAMESPACE,
355  SERVICE_NAMESPACE.'#getCourseXML',
356  SERVICE_STYLE,
357  SERVICE_USE,
358  'ILIAS getCourseXML(). Get a xml description of a specific course.');
359 
360  // updateCourse($sid,$course_id,$xml)
361  $this->server->register('updateCourse',
362  array('sid' => 'xsd:string',
363  'course_id' => 'xsd:int',
364  'xml' => 'xsd:string'),
365  array('success' => 'xsd:boolean'),
366  SERVICE_NAMESPACE,
367  SERVICE_NAMESPACE.'#updateCourse',
368  SERVICE_STYLE,
369  SERVICE_USE,
370  'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a '.
371  'given xml description');
372 
373  // get obj_id by import id
374  $this->server->register('getObjIdByImportId',
375  array('sid' => 'xsd:string',
376  'import_id' => 'xsd:string'),
377  array('obj_id' => 'xsd:int'),
378  SERVICE_NAMESPACE,
379  SERVICE_NAMESPACE.'#getCourseIdByImportId',
380  SERVICE_STYLE,
381  SERVICE_USE,
382  'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.');
383 
384 
385  // get ref ids by import id
386  $this->server->register('getRefIdsByImportId',
387  array('sid' => 'xsd:string',
388  'import_id' => 'xsd:string'),
389  array('ref_ids' => 'tns:intArray'),
390  SERVICE_NAMESPACE,
391  SERVICE_NAMESPACE.'#getRefIdsByImportId',
392  SERVICE_STYLE,
393  SERVICE_USE,
394  'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.');
395 
396  // get obj_id by import id
397  $this->server->register('getRefIdsByObjId',
398  array('sid' => 'xsd:string',
399  'obj_id' => 'xsd:string'),
400  array('ref_ids' => 'tns:intArray'),
401  SERVICE_NAMESPACE,
402  SERVICE_NAMESPACE.'#getRefIdsByObjId',
403  SERVICE_STYLE,
404  SERVICE_USE,
405  'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.');
406 
407  // Object administration
408  $this->server->register('getObjectByReference',
409  array('sid' => 'xsd:string',
410  'reference_id' => 'xsd:int',
411  'user_id' => 'xsd:int'),
412  array('object_xml' => 'xsd:string'),
413  SERVICE_NAMESPACE,
414  SERVICE_NAMESPACE.'#getObjectByReference',
415  SERVICE_STYLE,
416  SERVICE_USE,
417  'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, '.
418  'this methods also checks the permissions of that user on the object.');
419 
420  $this->server->register('getObjectsByTitle',
421  array('sid' => 'xsd:string',
422  'title' => 'xsd:string',
423  'user_id' => 'xsd:int'),
424  array('object_xml' => 'xsd:string'),
425  SERVICE_NAMESPACE,
426  SERVICE_NAMESPACE.'#getObjectsByTitle',
427  SERVICE_STYLE,
428  SERVICE_USE,
429  'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. '.
430  'If a user id is given this method also checks the permissions of that user on the object.');
431 
432  $this->server->register('searchObjects',
433  array('sid' => 'xsd:string',
434  'types' => 'tns:stringArray',
435  'key' => 'xsd:string',
436  'combination' => 'xsd:string',
437  'user_id' => 'xsd:int'),
438  array('object_xml' => 'xsd:string'),
439  SERVICE_NAMESPACE,
440  SERVICE_NAMESPACE.'#searchObjects',
441  SERVICE_STYLE,
442  SERVICE_USE,
443  'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" '.
444  'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); '.
445  ' If an optional user id is given, this methods also return the permissions for that user '.
446  'on the found objects');
447 
448  $this->server->register('getTreeChilds',
449  array('sid' => 'xsd:string',
450  'ref_id' => 'xsd:int',
451  'types' => 'tns:stringArray',
452  'user_id' => 'xsd:int'),
453  array('object_xml' => 'xsd:string'),
454  SERVICE_NAMESPACE,
455  SERVICE_NAMESPACE.'#getTreeChilds',
456  SERVICE_STYLE,
457  SERVICE_USE,
458  'ILIAS getTreeChilds(): Get all child objects of a given object.'.
459  'Choose array of types to filter the output. Choose empty type array to receive all object types');
460 
461  $this->server->register('getXMLTree',
462  array('sid' => 'xsd:string',
463  'ref_id' => 'xsd:int',
464  'types' => 'tns:stringArray',
465  'user_id' => 'xsd:int'),
466  array('object_xml' => 'xsd:string'),
467  SERVICE_NAMESPACE,
468  SERVICE_NAMESPACE.'#getXMLTree',
469  SERVICE_STYLE,
470  SERVICE_USE,
471  'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.');
472 
473 
474 
475  $this->server->register('addObject',
476  array('sid' => 'xsd:string',
477  'target_id' => 'xsd:int',
478  'object_xml' => 'xsd:string'),
479  array('ref_id' => 'xsd:int'),
480  SERVICE_NAMESPACE,
481  SERVICE_NAMESPACE.'#addObject',
482  SERVICE_STYLE,
483  SERVICE_USE,
484  'ILIAS addObject. Create new object based on xml description under a given node '.
485  '("category,course,group or folder). Return created reference id of the new object.' );
486 
487  $this->server->register('updateObjects',
488  array('sid' => 'xsd:string',
489  'object_xml' => 'xsd:string'),
490  array('success' => 'xsd:boolean'),
491  SERVICE_NAMESPACE,
492  SERVICE_NAMESPACE.'#updateObjects',
493  SERVICE_STYLE,
494  SERVICE_USE,
495  'ILIAS updateObjects. Update object data (title,description,owner)');
496 
497  $this->server->register('addReference',
498  array('sid' => 'xsd:string',
499  'source_id' => 'xsd:int',
500  'target_id' => 'xsd:int'),
501  array('ref_id' => 'xsd:int'),
502  SERVICE_NAMESPACE,
503  SERVICE_NAMESPACE.'#addReference',
504  SERVICE_STYLE,
505  SERVICE_USE,
506  'ILIAS addReference. Create new link of given object to new object. Return the new reference id');
507 
508  $this->server->register('deleteObject',
509  array('sid' => 'xsd:string',
510  'reference_id' => 'xsd:int'),
511  array('success' => 'xsd:boolean'),
512  SERVICE_NAMESPACE,
513  SERVICE_NAMESPACE.'#deleteObject',
514  SERVICE_STYLE,
515  SERVICE_USE,
516  'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ');
517 
518 
519  $this->server->register('removeFromSystemByImportId',
520  array('sid' => 'xsd:string',
521  'import_id' => 'xsd:string'),
522  array('success' => 'xsd:boolean'),
523  SERVICE_NAMESPACE,
524  SERVICE_NAMESPACE.'#removeFromSystemByImportId',
525  SERVICE_STYLE,
526  SERVICE_USE,
527  'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the '.
528  'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use '.
529  'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.');
530 
531  $this->server->register('addUserRoleEntry',
532  array('sid' => 'xsd:string',
533  'user_id' => 'xsd:int',
534  'role_id' => 'xsd:int'),
535  array('success' => 'xsd:boolean'),
536  SERVICE_NAMESPACE,
537  SERVICE_NAMESPACE.'#addUserRoleEntry',
538  SERVICE_STYLE,
539  SERVICE_USE,
540  'ILIAS addUserRoleEntry. Assign user to role.');
541 
542  $this->server->register('deleteUserRoleEntry',
543  array('sid' => 'xsd:string',
544  'user_id' => 'xsd:int',
545  'role_id' => 'xsd:int'),
546  array('success' => 'xsd:boolean'),
547  SERVICE_NAMESPACE,
548  SERVICE_NAMESPACE.'#deleteUserRoleEntry',
549  SERVICE_STYLE,
550  SERVICE_USE,
551  'ILIAS deleteUserRoleEntry. Deassign user from role.');
552 
553 
554  // Add complex type for operations e.g array(array('name' => 'read','ops_id' => 2),...)
555  $this->server->wsdl->addComplexType('ilOperation',
556  'complexType',
557  'struct',
558  'all',
559  '',
560  array('ops_id' => array('name' => 'ops_id',
561  'type' => 'xsd:int'),
562  'operation' => array('name' => 'operation',
563  'type' => 'xsd:string'),
564  'description' => array('name' => 'description',
565  'type' => 'xsd:string')));
566  // Now create an array of ilOperations
567  $this->server->wsdl->addComplexType('ilOperations',
568  'complexType',
569  'array',
570  '',
571  'SOAP-ENC:Array',
572  array(),
573  array(array('ref' => 'SOAP-ENC:arrayType',
574  'wsdl:arrayType' => 'tns:ilOperation[]')),
575  'tns:ilOperation');
576  $this->server->register('getOperations',
577  array('sid' => 'xsd:string'),
578  array('operations' => 'tns:ilOperations'),
579  SERVICE_NAMESPACE,
580  SERVICE_NAMESPACE.'#getOperations',
581  SERVICE_STYLE,
582  SERVICE_USE,
583  'ILIAS getOperations(): get complete set of RBAC operations.');
584 
585  $this->server->register('revokePermissions',
586  array('sid' => 'xsd:string',
587  'ref_id' => 'xsd:int',
588  'role_id' => 'xsd:int'),
589  array('success' => 'xsd:boolean'),
590  SERVICE_NAMESPACE,
591  SERVICE_NAMESPACE.'#revokePermissions',
592  SERVICE_STYLE,
593  SERVICE_USE,
594  'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.');
595 
596  $this->server->wsdl->addComplexType('ilOperationIds',
597  'complexType',
598  'array',
599  '',
600  'SOAP-ENC:Array',
601  array(),
602  array(array('ref' => 'SOAP-ENC:arrayType',
603  'wsdl:arrayType' => 'xsd:int[]')),
604  'xsd:int');
605 
606  $this->server->register('grantPermissions',
607  array('sid' => 'xsd:string',
608  'ref_id' => 'xsd:int',
609  'role_id' => 'xsd:int',
610  'operations' => 'tns:intArray'),
611  array('success' => 'xsd:boolean'),
612  SERVICE_NAMESPACE,
613  SERVICE_NAMESPACE.'#grantPermissions',
614  SERVICE_STYLE,
615  SERVICE_USE,
616  'ILIAS grantPermissions(): Grant permissions for a specific role on an object. '.
617  '(Substitutes existing permission settings)');
618 
619  $this->server->register('getLocalRoles',
620  array('sid' => 'xsd:string',
621  'ref_id' => 'xsd:int'),
622  array('role_xml' => 'xsd:string'),
623  SERVICE_NAMESPACE,
624  SERVICE_NAMESPACE.'#getLocalRoles',
625  SERVICE_STYLE,
626  SERVICE_USE,
627  'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.');
628 
629  $this->server->register('getUserRoles',
630  array('sid' => 'xsd:string',
631  'user_id' => 'xsd:int'),
632  array('role_xml' => 'xsd:string'),
633  SERVICE_NAMESPACE,
634  SERVICE_NAMESPACE.'#getLocalRoles',
635  SERVICE_STYLE,
636  SERVICE_USE,
637  'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ');
638 
639  $this->server->register('addRole',
640  array('sid' => 'xsd:string',
641  'target_id' => 'xsd:int',
642  'obj_xml' => 'xsd:string'),
643  array('role_ids' => 'tns:intArray'),
644  SERVICE_NAMESPACE,
645  SERVICE_NAMESPACE.'#addRole',
646  SERVICE_STYLE,
647  SERVICE_USE,
648  'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
649  'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.');
650 
651  $this->server->register('deleteRole',
652  array('sid' => 'xsd:string',
653  'role_id' => 'xsd:int'),
654  array('success' => 'xsd:boolean'),
655  SERVICE_NAMESPACE,
656  SERVICE_NAMESPACE.'#deleteRole',
657  SERVICE_STYLE,
658  SERVICE_USE,
659  'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user');
660 
661  $this->server->register('addRoleFromTemplate',
662  array('sid' => 'xsd:string',
663  'target_id' => 'xsd:int',
664  'obj_xml' => 'xsd:string',
665  'role_template_id' => 'xsd:int'),
666  array('role_ids' => 'tns:intArray'),
667  SERVICE_NAMESPACE,
668  SERVICE_NAMESPACE.'#addRole',
669  SERVICE_STYLE,
670  SERVICE_USE,
671  'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
672  'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. '.
673  'In addition to addRole the template permissions will be copied from the given role template');
674 
675  $this->server->register('getObjectTreeOperations',
676  array('sid' => 'xsd:string',
677  'ref_id' => 'xsd:int',
678  'user_id' => 'xsd:int'),
679  array('operations' => 'tns:ilOperations'),
680  SERVICE_NAMESPACE,
681  SERVICE_NAMESPACE.'#getPermissionsForObject',
682  SERVICE_STYLE,
683  SERVICE_USE,
684  'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of '.
685  'an object for a specific user. Returns array of granted operations or empty array');
686 
687  $this->server->register('addGroup',
688  array('sid' => 'xsd:string',
689  'target_id' => 'xsd:int',
690  'group_xml' => 'xsd:string'),
691  array('ref_id' => 'xsd:int'),
692  SERVICE_NAMESPACE,
693  SERVICE_NAMESPACE.'#addGroup',
694  SERVICE_STYLE,
695  SERVICE_USE,
696  'ILIAS addGroup(): Add grop according to valid group XML '.
697  '@See ilias_group_0_1.dtd');
698 
699  $this->server->register('groupExists',
700  array('sid' => 'xsd:string',
701  'title' => 'xsd:string'),
702  array('exists' => 'xsd:boolean'),
703  SERVICE_NAMESPACE,
704  SERVICE_NAMESPACE.'#groupExists',
705  SERVICE_STYLE,
706  SERVICE_USE,
707  'ILIAS addGroup(): Check if group with given name exists. ');
708 
709 
710  // getGroup
711  $this->server->register('getGroup',
712  array('sid' => 'xsd:string',
713  'ref_id' => 'xsd:int'),
714  array('group_xml' => 'xsd:string'),
715  SERVICE_NAMESPACE,
716  SERVICE_NAMESPACE.'#getGroup',
717  SERVICE_STYLE,
718  SERVICE_USE,
719  'ILIAS getGroup(): get xml description of grouip with given reference id.');
720 
721  // assignGroupMember()
722  $this->server->register('assignGroupMember',
723  array('sid' => 'xsd:string',
724  'group_id' => 'xsd:int',
725  'user_id' => 'xsd:int',
726  'type' => 'xsd:string'),
727  array('success' => 'xsd:boolean'),
728  SERVICE_NAMESPACE,
729  SERVICE_NAMESPACE.'#assignGroupMember',
730  SERVICE_STYLE,
731  SERVICE_USE,
732  'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"');
733 
734  // excludeGroupMember()
735  $this->server->register('excludeGroupMember',
736  array('sid' => 'xsd:string',
737  'group_id' => 'xsd:int',
738  'user_id' => 'xsd:int'),
739  array('success' => 'xsd:boolean'),
740  SERVICE_NAMESPACE,
741  SERVICE_NAMESPACE.'#excludeGroupMember',
742  SERVICE_STYLE,
743  SERVICE_USE,
744  'ILIAS excludeGroupMember(). Excludes an user from an existing group.');
745 
746  // isAssignedToGroup()
747  $this->server->register('isAssignedToGroup',
748  array('sid' => 'xsd:string',
749  'group_id' => 'xsd:int',
750  'user_id' => 'xsd:int'),
751  array('role' => 'xsd:int'),
752  SERVICE_NAMESPACE,
753  SERVICE_NAMESPACE.'#isAssignedToGroup',
754  SERVICE_STYLE,
755  SERVICE_USE,
756  'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. '.
757  'Returns 0 => not assigned, 1 => group admin, 2 => group member');
758 
759 
760 
761  // ILIAS util functions
762  $this->server->register('sendMail',
763  array('sid' => 'xsd:string',
764  'rcp_to' => 'xsd:string',
765  'rcp_cc' => 'xsd:string',
766  'rcp_bcc' => 'xsd:string',
767  'sender' => 'xsd:string',
768  'subject' => 'xsd:string',
769  'message' => 'xsd:string',
770  'attachments' => 'xsd:string'),
771  array('status' => 'xsd:boolean'),
772  SERVICE_NAMESPACE,
773  SERVICE_NAMESPACE.'#sendMail',
774  SERVICE_STYLE,
775  SERVICE_USE,
776  'ILIAS sendMail(): Send mime mails according to xml description. Only for internal usage '.
777  'Syntax, parameters may change in future releases');
778 
779  $this->server->register('distributeMails',
780  array('sid' => 'xsd:string',
781  'mail_xml' => 'xsd:string'),
782  array('status' => 'xsd:boolean'),
783  SERVICE_NAMESPACE,
784  SERVICE_NAMESPACE.'#sendMail',
785  SERVICE_STYLE,
786  SERVICE_USE,
787  'ILIAS distributeMails(): Distribute ILIAS mails according according to the mail setting of the recipients as '.
788  'ILIAS internal mail or as e-mail.'
789  );
790 
791  // Clone functions
792  $this->server->register('ilClone',
793  array('sid' => 'xsd:string','copy_identifier' => 'xsd:int'),
794  array('new_ref_id' => 'xsd:int'),
795  SERVICE_NAMESPACE,
796  SERVICE_NAMESPACE.'#ilClone',
797  SERVICE_STYLE,
798  SERVICE_USE,
799  'ILIAS ilClone(): Only for internal usage.'.
800  'Syntax, parameters may change in future releases. ');
801 
802  $this->server->register('handleECSTasks',
803  array('sid' => 'xsd:string','server_id' => 'xsd:int'),
804  array('success' => 'xsd:boolean'),
805  SERVICE_NAMESPACE,
806  SERVICE_NAMESPACE.'#handleECSTasks',
807  SERVICE_STYLE,
808  SERVICE_USE,
809  'ILIAS handleECSTasks(): Only for internal usage.'.
810  'Syntax, parameters may change in future releases. ');
811 
812  $this->server->register('ilCloneDependencies',
813  array('sid' => 'xsd:string','copy_identifier' => 'xsd:int'),
814  array('success' => 'xsd:boolean'),
815  SERVICE_NAMESPACE,
816  SERVICE_NAMESPACE.'#ilCloneDependencies',
817  SERVICE_STYLE,
818  SERVICE_USE,
819  'ILIAS ilCloneDependencies(): Only for internal usage.'.
820  'Syntax, parameters may change in future releases. ');
821 
822  $this->server->register('saveQuestionResult',
823  array('sid' => 'xsd:string',
824  'user_id' => 'xsd:int',
825  'test_id' => 'xsd:int',
826  'question_id' => 'xsd:int',
827  'pass' => 'xsd:int',
828  'solution' => 'tns:stringArray'),
829  array('status' => 'xsd:boolean'),
830  SERVICE_NAMESPACE,
831  SERVICE_NAMESPACE.'#saveQuestionResult',
832  SERVICE_STYLE,
833  SERVICE_USE,
834  'ILIAS saveQuesionResult: Typically called from an external assessment question to save the user input. DEPRECATED since ILIAS 3.9');
835 
836  $this->server->register('saveQuestion',
837  array('sid' => 'xsd:string',
838  'active_id' => 'xsd:long',
839  'question_id' => 'xsd:long',
840  'pass' => 'xsd:int',
841  'solution' => 'tns:stringArray'),
842  array('status' => 'xsd:boolean'),
843  SERVICE_NAMESPACE,
844  SERVICE_NAMESPACE.'#saveQuestion',
845  SERVICE_STYLE,
846  SERVICE_USE,
847  '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.');
848 
849  $this->server->register('saveQuestionSolution',
850  array('sid' => 'xsd:string',
851  'active_id' => 'xsd:long',
852  'question_id' => 'xsd:long',
853  'pass' => 'xsd:int',
854  'solution' => 'xsd:string'),
855  array('status' => 'xsd:string'),
856  SERVICE_NAMESPACE,
857  SERVICE_NAMESPACE.'#saveQuestionSolution',
858  SERVICE_STYLE,
859  SERVICE_USE,
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 &lt;values&gt;&lt;value&gt;VALUE&lt;/value&gt;&lt;value&gt;VALUE&lt;/value&gt;&lt;points&gt;POINTS&lt;/points&gt;...&lt;/values&gt; where the triplet (value,value,points) can repeat n times. The result string is either TRUE or it contains an error message.');
861 
862  $this->server->register('getQuestionSolution',
863  array('sid' => 'xsd:string',
864  'active_id' => 'xsd:long',
865  'question_id' => 'xsd:int',
866  'pass' => 'xsd:int'),
867  array('solution' => 'tns:stringArray'),
868  SERVICE_NAMESPACE,
869  SERVICE_NAMESPACE.'#getQuestionSolution',
870  SERVICE_STYLE,
871  SERVICE_USE,
872  'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.');
873 
874  $this->server->register('getTestUserData',
875  array('sid' => 'xsd:string',
876  'active_id' => 'xsd:long'),
877  array('userdata' => 'tns:stringArray'),
878  SERVICE_NAMESPACE,
879  SERVICE_NAMESPACE.'#getTestUserData',
880  SERVICE_STYLE,
881  SERVICE_USE,
882  '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.');
883 
884  $this->server->register('getPositionOfQuestion',
885  array('sid' => 'xsd:string',
886  'active_id' => 'xsd:long',
887  'question_id' => 'xsd:int',
888  'pass' => 'xsd:int'),
889  array('position' => 'xsd:int'),
890  SERVICE_NAMESPACE,
891  SERVICE_NAMESPACE.'#getPositionOfQuestion',
892  SERVICE_STYLE,
893  SERVICE_USE,
894  'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.');
895 
896  $this->server->register('getPreviousReachedPoints',
897  array('sid' => 'xsd:string',
898  'active_id' => 'xsd:long',
899  'question_id' => 'xsd:int',
900  'pass' => 'xsd:int'),
901  array('position' => 'tns:doubleArray'),
902  SERVICE_NAMESPACE,
903  SERVICE_NAMESPACE.'#getPreviousReachedPoints',
904  SERVICE_STYLE,
905  SERVICE_USE,
906  'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.');
907 
908  $this->server->register('getNrOfQuestionsInPass',
909  array('sid' => 'xsd:string',
910  'active_id' => 'xsd:long',
911  'pass' => 'xsd:int'),
912  array('count' => 'xsd:int'),
913  SERVICE_NAMESPACE,
914  SERVICE_NAMESPACE.'#getNrOfQuestionsInPass',
915  SERVICE_STYLE,
916  SERVICE_USE,
917  'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.');
918 
919  $this->server->register('getStructureObjects',
920  array('sid' => 'xsd:string',
921  'ref_id' => 'xsd:int'),
922  array('xml' => 'xsd:string'),
923  SERVICE_NAMESPACE,
924  SERVICE_NAMESPACE.'#getStructureObjects',
925  SERVICE_STYLE,
926  SERVICE_USE,
927  'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)');
928 
929  // importUsers()
930  $this->server->register('importUsers',
931  array('sid' => 'xsd:string',
932  'folder_id' => 'xsd:int',
933  'usr_xml' => 'xsd:string',
934  'conflict_rule' => 'xsd:int',
935  'send_account_mail' => 'xsd:int'),
936  array('protocol' => 'xsd:string'),
937  SERVICE_NAMESPACE,
938  SERVICE_NAMESPACE.'#importUsers',
939  SERVICE_STYLE,
940  SERVICE_USE,
941  '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');
942 
943  $this->server->register('getRoles',
944  array('sid' => 'xsd:string',
945  'role_type' => 'xsd:string',
946  'id' => 'xsd:string'),
947  array('role_xml' => 'xsd:string'),
948  SERVICE_NAMESPACE,
949  SERVICE_NAMESPACE.'#getRoles',
950  SERVICE_STYLE,
951  SERVICE_USE,
952  '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');
953 
954  $this->server->register('getUsersForContainer',
955  array('sid' => 'xsd:string',
956  'ref_id' => 'xsd:int',
957  'attach_roles' => 'xsd:int',
958  'active' => 'xsd:int'),
959  array('user_xml' => 'xsd:string'),
960  SERVICE_NAMESPACE,
961  SERVICE_NAMESPACE.'#getUsersForContainer',
962  SERVICE_STYLE,
963  SERVICE_USE,
964  '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');
965 
966  $this->server->register('getUsersForRole',
967  array('sid' => 'xsd:string',
968  'role_id' => 'xsd:int',
969  'attach_roles' => 'xsd:int',
970  'active' => 'xsd:int'),
971  array('user_xml' => 'xsd:string'),
972  SERVICE_NAMESPACE,
973  SERVICE_NAMESPACE.'#getUsersForRole',
974  SERVICE_STYLE,
975  SERVICE_USE,
976  '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');
977 
978  $this->server->register('searchUser',
979  array('sid' => 'xsd:string',
980  'key_fields' => 'tns:stringArray',
981  'query_operator' => 'xsd:string',
982  'key_values' => 'tns:stringArray',
983  'attach_roles' => 'xsd:int',
984  'active' => 'xsd:int'),
985 
986  array('user_xml' => 'xsd:string'),
987  SERVICE_NAMESPACE,
988  SERVICE_NAMESPACE.'#searchUsers',
989  SERVICE_STYLE,
990  SERVICE_USE,
991  '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');
992 
993  // Mail Functions
994  // Check whether current user has new mail
995  $this->server->register('hasNewMail',
996  array('sid' => 'xsd:string'),
997  array('status' => 'xsd:boolean'),
998  SERVICE_NAMESPACE,
999  SERVICE_NAMESPACE.'#hasNewMail',
1000  SERVICE_STYLE,
1001  SERVICE_USE,
1002  'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.');
1003 
1004  $this->server->register('getNIC',
1005  array('sid' => 'xsd:string'),
1006  array('xmlresultset' => 'xsd:string'),
1007  SERVICE_NAMESPACE,
1008  SERVICE_NAMESPACE.'#getNIC',
1009  SERVICE_STYLE,
1010  SERVICE_USE,
1011  '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');
1012 
1013  $this->server->register('getExerciseXML',
1014  array('sid' => 'xsd:string', "ref_id" => 'xsd:int', "attachment_mode" => "xsd:int"),
1015  array('exercisexml' => 'xsd:string'),
1016  SERVICE_NAMESPACE,
1017  SERVICE_NAMESPACE.'#getExerciseXML',
1018  SERVICE_STYLE,
1019  SERVICE_USE,
1020  'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
1021 
1022  $this->server->register('addExercise',
1023  array('sid' => 'xsd:string', "target_id" => 'xsd:int', "xml" => "xsd:string"),
1024  array('refid' => 'xsd:int'),
1025  SERVICE_NAMESPACE,
1026  SERVICE_NAMESPACE.'#addExercise',
1027  SERVICE_STYLE,
1028  SERVICE_USE,
1029  '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!');
1030 
1031  $this->server->register('updateExercise',
1032  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
1033  array('success' => 'xsd:boolean'),
1034  SERVICE_NAMESPACE,
1035  SERVICE_NAMESPACE.'#updateExercise',
1036  SERVICE_STYLE,
1037  SERVICE_USE,
1038  '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.!');
1039 
1040  $this->server->register('getFileXML',
1041  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'attachment_mode' => 'xsd:int'),
1042  array('filexml' => 'xsd:string'),
1043  SERVICE_NAMESPACE,
1044  SERVICE_NAMESPACE.'#getFileXML',
1045  SERVICE_STYLE,
1046  SERVICE_USE,
1047  'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
1048 
1049  $this->server->register('addFile',
1050  array('sid' => 'xsd:string', 'target_id' => 'xsd:int', 'xml' => 'xsd:string'),
1051  array('refid' => 'xsd:int'),
1052  SERVICE_NAMESPACE,
1053  SERVICE_NAMESPACE.'#addFile',
1054  SERVICE_STYLE,
1055  SERVICE_USE,
1056  '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!');
1057 
1058  $this->server->register('updateFile',
1059  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
1060  array('success' => 'xsd:boolean'),
1061  SERVICE_NAMESPACE,
1062  SERVICE_NAMESPACE.'#updateFile',
1063  SERVICE_STYLE,
1064  SERVICE_USE,
1065  '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.!');
1066 
1067 
1068  $this->server->register('getUserXML',
1069  array('sid' => 'xsd:string', 'user_ids' => 'tns:intArray', 'attach_roles' => 'xsd:int'),
1070  array('xml' => 'xsd:string'),
1071  SERVICE_NAMESPACE,
1072  SERVICE_NAMESPACE.'#resolveUsers',
1073  SERVICE_STYLE,
1074  SERVICE_USE,
1075  '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');
1076 
1077 
1078  // get objs ids by ref id
1079  $this->server->register('getObjIdsByRefIds',
1080  array('sid' => 'xsd:string',
1081  'ref_ids' => 'tns:intArray'),
1082  array('obj_ids' => 'tns:intArray'),
1083  SERVICE_NAMESPACE,
1084  SERVICE_NAMESPACE.'#getRefIdsByImportId',
1085  SERVICE_STYLE,
1086  SERVICE_USE,
1087  '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');
1088 
1089  $this->server->register('updateGroup',
1090  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
1091  array('success' => 'xsd:boolean'),
1092  SERVICE_NAMESPACE,
1093  SERVICE_NAMESPACE.'#updateGroup',
1094  SERVICE_STYLE,
1095  SERVICE_USE,
1096  'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).');
1097 
1098 
1099 
1100  $this->server->register('getIMSManifestXML',
1101  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int'),
1102  array('xml' => 'xsd:string'),
1103  SERVICE_NAMESPACE,
1104  SERVICE_NAMESPACE.'#getIMSManifestXML',
1105  SERVICE_STYLE,
1106  SERVICE_USE,
1107  'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid');
1108 
1109  $this->server->register('hasSCORMCertificate',
1110  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'usr_id' => 'xsd:int'),
1111  array('success' => 'xsd:boolean'),
1112  SERVICE_NAMESPACE,
1113  SERVICE_NAMESPACE.'#hasSCORMCertificate',
1114  SERVICE_STYLE,
1115  SERVICE_USE,
1116  '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');
1117 
1118  $this->server->register('getSCORMCompletionStatus',
1119  array('sid' => 'xsd:string', 'usr_id' => 'xsd:int', 'ref_id' => 'xsd:int'),
1120  array('status' => 'xsd:string'),
1121  SERVICE_NAMESPACE,
1122  SERVICE_NAMESPACE.'#getSCORMCompletionStatus',
1123  SERVICE_STYLE,
1124  SERVICE_USE,
1125  'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module');
1126 
1127  $this->server->register('copyObject',
1128  array('sid' => 'xsd:string', 'xml' => 'xsd:string'),
1129  array('xml' => 'xsd:int'),
1130  SERVICE_NAMESPACE,
1131  SERVICE_NAMESPACE.'#copyObject',
1132  SERVICE_STYLE,
1133  SERVICE_USE,
1134  'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.');
1135 
1136  $this->server->register('moveObject',
1137  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'target_id' => 'xsd:int'),
1138  array('result' => 'xsd:boolean'),
1139  SERVICE_NAMESPACE,
1140  SERVICE_NAMESPACE.'#moveObject',
1141  SERVICE_STYLE,
1142  SERVICE_USE,
1143  'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.');
1144 
1145 
1146  $this->server->register ('getTestResults',
1147  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'sum_only' => 'xsd:boolean'),
1148  array('xml' => 'xsd:string'),
1149  SERVICE_NAMESPACE,
1150  SERVICE_NAMESPACE.'#getTestResults',
1151  SERVICE_STYLE,
1152  SERVICE_USE,
1153  'ILIAS getTestResults(): returns XMLResultSet with
1154  sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points
1155  sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points');
1156 
1157  $this->server->register ('removeTestResults',
1158  array(
1159  'sid' => 'xsd:string',
1160  'ref_id' => 'xsd:int',
1161  'user_ids' => 'tns:intArray'),
1162  array('success' => 'xsd:boolean'),
1163  SERVICE_NAMESPACE,
1164  SERVICE_NAMESPACE.'#removeTestResults',
1165  SERVICE_STYLE,
1166  SERVICE_USE,
1167  'ILIAS removeTestResults(): remove test results for the chosen users');
1168 
1169  $this->server->register ('getCoursesForUser',
1170  array('sid' => 'xsd:string', 'parameters' => 'xsd:string'),
1171  array('xml' => 'xsd:string'),
1172  SERVICE_NAMESPACE,
1173  SERVICE_NAMESPACE.'#getCoursesForUser',
1174  SERVICE_STYLE,
1175  SERVICE_USE,
1176  '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.');
1177 
1178  $this->server->register ('getGroupsForUser',
1179  array('sid' => 'xsd:string', 'parameters' => 'xsd:string'),
1180  array('xml' => 'xsd:string'),
1181  SERVICE_NAMESPACE,
1182  SERVICE_NAMESPACE.'#getGroupsForUser',
1183  SERVICE_STYLE,
1184  SERVICE_USE,
1185  '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.');
1186 
1187  $this->server->register ('getPathForRefId',
1188  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int'),
1189  array('xml' => 'xsd:string'),
1190  SERVICE_NAMESPACE,
1191  SERVICE_NAMESPACE.'#getPathForRefId',
1192  SERVICE_STYLE,
1193  SERVICE_USE,
1194  'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.');
1195 
1196  $this->server->register ('searchRoles',
1197  array('sid' => 'xsd:string', 'key' => 'xsd:string', 'combination' => 'xsd:string', 'role_type' => 'xsd:string'),
1198  array('xml' => 'xsd:string'),
1199  SERVICE_NAMESPACE,
1200  SERVICE_NAMESPACE.'#searchRoles',
1201  SERVICE_STYLE,
1202  SERVICE_USE,
1203  'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.');
1204 
1205  $this->server->register ('getInstallationInfoXML',
1206  array(),
1207  array('xml' => 'xsd:string'),
1208  SERVICE_NAMESPACE,
1209  SERVICE_NAMESPACE.'#getInstallationInfoXML',
1210  SERVICE_STYLE,
1211  SERVICE_USE,
1212  'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd');
1213 
1214  $this->server->register ('getClientInfoXML',
1215  array('clientid' => 'xsd:string'),
1216  array('xml' => 'xsd:string'),
1217  SERVICE_NAMESPACE,
1218  SERVICE_NAMESPACE.'#getClientInfoXML',
1219  SERVICE_STYLE,
1220  SERVICE_USE,
1221  'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id');
1222 
1223  $this->server->register('getSkillCompletionDateForTriggerRefId',
1224  array('sid' => 'xsd:string',
1225  'user_id' => 'xsd:string',
1226  'ref_id' => 'xsd:string'),
1227  array('dates' => 'xsd:string'),
1228  SERVICE_NAMESPACE,
1229  SERVICE_NAMESPACE.'#getSkillCompletionDateForTriggerRefId',
1230  SERVICE_STYLE,
1231  SERVICE_USE,
1232  'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.');
1233 
1234  $this->server->register('checkSkillUserCertificateForTriggerRefId',
1235  array('sid' => 'xsd:string',
1236  'user_id' => 'xsd:string',
1237  'ref_id' => 'xsd:string'),
1238  array('have_certificates' => 'xsd:string'),
1239  SERVICE_NAMESPACE,
1240  SERVICE_NAMESPACE.'#checkSkillUserCertificateForTriggerRefId',
1241  SERVICE_STYLE,
1242  SERVICE_USE,
1243  'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.');
1244 
1245  $this->server->register('getSkillTriggerOfAllCertificates',
1246  array('sid' => 'xsd:string',
1247  'user_id' => 'xsd:string'),
1248  array('certificate_triggers' => 'xsd:string'),
1249  SERVICE_NAMESPACE,
1250  SERVICE_NAMESPACE.'#getSkillTriggerOfAllCertificates',
1251  SERVICE_STYLE,
1252  SERVICE_USE,
1253  'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.');
1254 
1255  $this->server->register ('getUserIdBySid',
1256  array('sid' => 'xsd:string'),
1257  array('usr_id' => 'xsd:int'),
1258  SERVICE_NAMESPACE,
1259  SERVICE_NAMESPACE.'#getUserIdBySid',
1260  SERVICE_STYLE,
1261  SERVICE_USE,
1262  'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid');
1263 
1264  $this->server->register('deleteExpiredDualOptInUserObjects',
1265  array('sid' => 'xsd:string',
1266  'usr_id' => 'xsd:int'),
1267  array('status' => 'xsd:boolean'),
1268  SERVICE_NAMESPACE,
1269  SERVICE_NAMESPACE.'#deleteExpiredDualOptInUserObjects',
1270  SERVICE_STYLE,
1271  SERVICE_USE,
1272  'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method');
1273 
1274 
1275  $this->server->register('readWebLink',
1276  array('sid' => 'xsd:string', "ref_id" => 'xsd:int'),
1277  array('weblinkxml' => 'xsd:string'),
1278  SERVICE_NAMESPACE,
1279  SERVICE_NAMESPACE . '#readWebLink',
1280  SERVICE_STYLE,
1281  SERVICE_USE,
1282  'ILIAS readWebLink(): returns xml description of a weblink container.');
1283 
1284  $this->server->register('createWebLink',
1285  array('sid' => 'xsd:string', "target_id" => 'xsd:int', "xml" => "xsd:string"),
1286  array('refid' => 'xsd:int'),
1287  SERVICE_NAMESPACE,
1288  SERVICE_NAMESPACE . '#createWebLink',
1289  SERVICE_STYLE,
1290  SERVICE_USE,
1291  '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!');
1292 
1293  $this->server->register('updateWebLink',
1294  array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
1295  array('success' => 'xsd:boolean'),
1296  SERVICE_NAMESPACE,
1297  SERVICE_NAMESPACE . '#updateWebLink',
1298  SERVICE_STYLE,
1299  SERVICE_USE,
1300  'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).');
1301 
1302  // mcs-patch start
1303  $this->server->register('getLearningProgressChanges',
1304  array('sid' => 'xsd:string', 'timestamp' => 'xsd:string', 'include_ref_ids' => 'xsd:boolean', 'type_filter' => 'tns:stringArray'),
1305  array('lp_data' => 'xsd:string'),
1306  SERVICE_NAMESPACE,
1307  SERVICE_NAMESPACE . '#getLearningProgressChanges',
1308  SERVICE_STYLE,
1309  SERVICE_USE,
1310  'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.');
1311  // mcs-patch end
1312 
1313 
1314 
1315  $this->server->register('deleteProgress',
1316  array(
1317  'sid' => 'xsd:string',
1318  'ref_ids' => 'tns:intArray',
1319  'usr_ids' => 'tns:intArray',
1320  'type_filter' => 'tns:stringArray',
1321  'progress_filter' => 'tns:intArray'
1322  ),
1323  array('status' => 'xsd:boolean'),
1324  SERVICE_NAMESPACE,
1325  SERVICE_NAMESPACE.'#deleteProgress',
1326  SERVICE_STYLE,
1327  SERVICE_USE,
1328  'Delete user progress data of objects. '
1329  );
1330 
1331 
1332  $this->server->register(
1333  'getProgressInfo',
1334  array(
1335  'sid' => 'xsd:string',
1336  'ref_id' => 'xsd:int',
1337  'progress_filter' => 'tns:intArray'
1338  ),
1339  array('user_results' => 'xsd:string'),
1340  SERVICE_NAMESPACE,
1341  SERVICE_NAMESPACE . '#getProgressInfo',
1342  SERVICE_STYLE,
1343  SERVICE_USE,
1344  'Get object learning progress information'
1345  );
1346 
1347 
1348 
1349  return true;
1350 
1351  }
1352 
1353 }
1354 ?>
soap_server allows the user to create a SOAP server that is capable of receiving messages and returni...
Definition: nusoap.php:2313
exit
Definition: login.php:54
global $HTTP_RAW_POST_DATA