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