00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 include_once './webservice/soap/lib/nusoap.php';
00035 include_once './webservice/soap/include/inc.soap_functions.php';
00036
00037 class ilNusoapUserAdministrationAdapter
00038 {
00039
00040
00041
00042 var $server = null;
00043
00044
00045 function ilNusoapUserAdministrationAdapter($a_use_wsdl = true)
00046 {
00047 define('SERVICE_NAME','ILIASSoapWebservice');
00048 define('SERVICE_NAMESPACE','urn:ilUserAdministration');
00049 define('SERVICE_STYLE','rpc');
00050 define('SERVICE_USE','encoded');
00051 global $debug; $debug = true;
00052 $this->server =& new soap_server();
00053 $this->server->decode_utf8 = false;
00054 if($a_use_wsdl)
00055 {
00056 $this->__enableWSDL();
00057 }
00058
00059 $this->__registerMethods();
00060
00061
00062 }
00063
00064 function start()
00065 {
00066 global $HTTP_RAW_POST_DATA;
00067
00068 $this->server->service($HTTP_RAW_POST_DATA);
00069 exit();
00070 }
00071
00072
00073 function __enableWSDL()
00074 {
00075 $this->server->configureWSDL(SERVICE_NAME,SERVICE_NAMESPACE);
00076
00077 return true;
00078 }
00079
00080
00081 function __registerMethods()
00082 {
00083
00084
00085 $this->server->wsdl->addComplexType('intArray',
00086 'complexType',
00087 'array',
00088 '',
00089 'SOAP-ENC:Array',
00090 array(),
00091 array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:int[]')),
00092 'xsd:int');
00093
00094 $this->server->wsdl->addComplexType('stringArray',
00095 'complexType',
00096 'array',
00097 '',
00098 'SOAP-ENC:Array',
00099 array(),
00100 array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')),
00101 'xsd:string');
00102
00103
00104
00105
00106 $this->server->register('login',
00107 array('client' => 'xsd:string',
00108 'username' => 'xsd:string',
00109 'password' => 'xsd:string'),
00110 array('sid' => 'xsd:string'),
00111 SERVICE_NAMESPACE,
00112 SERVICE_NAMESPACE.'#login',
00113 SERVICE_STYLE,
00114 SERVICE_USE,
00115 'ILIAS login function');
00116
00117
00118 $this->server->register('loginCAS',
00119 array('client' => 'xsd:string',
00120 'PT' => 'xsd:string',
00121 'user' => 'xsd:string'),
00122 array('sid' => 'xsd:string'),
00123 SERVICE_NAMESPACE,
00124 SERVICE_NAMESPACE.'#loginCAS',
00125 SERVICE_STYLE,
00126 SERVICE_USE,
00127 'ILIAS login function via CAS');
00128
00129 $this->server->register('loginLDAP',
00130 array('client' => 'xsd:string',
00131 'username' => 'xsd:string',
00132 'password' => 'xsd:string'),
00133 array('sid' => 'xsd:string'),
00134 SERVICE_NAMESPACE,
00135 SERVICE_NAMESPACE.'#login',
00136 SERVICE_STYLE,
00137 SERVICE_USE,
00138 'ILIAS login function via LDAP');
00139
00140
00141
00142
00143 $this->server->register('logout',
00144 array('sid' => 'xsd:string'),
00145 array('success' => 'xsd:boolean'),
00146 SERVICE_NAMESPACE,
00147 SERVICE_NAMESPACE.'#logout',
00148 SERVICE_STYLE,
00149 SERVICE_USE,
00150 'ILIAS logout function');
00151
00152 $this->server->wsdl->addComplexType('ilUserData',
00153 'complexType',
00154 'struct',
00155 'all',
00156 '',
00157 array('usr_id' => array('name' => 'usr_id','type' => 'xsd:int'),
00158 'login' => array('name' => 'login', 'type' => 'xsd:string'),
00159 'passwd' => array('name' => 'passwd', 'type' => 'xsd:string'),
00160 'firstname' => array('name' => 'firstname', 'type' => 'xsd:string'),
00161 'lastname' => array('name' => 'lastname', 'type' => 'xsd:string'),
00162 'title' => array('name' => 'title', 'type' => 'xsd:string'),
00163 'gender' => array('name' => 'gender', 'type' => 'xsd:string'),
00164 'email' => array('name' => 'email', 'type' => 'xsd:string'),
00165 'institution' => array('name' => 'institution', 'type' => 'xsd:string'),
00166 'street' => array('name' => 'street', 'type' => 'xsd:string'),
00167 'city' => array('name' => 'city', 'type' => 'xsd:string'),
00168 'zipcode' => array('name' => 'zipcode', 'type' => 'xsd:string'),
00169 'country' => array('name' => 'country', 'type' => 'xsd:string'),
00170 'phone_office' => array('name' => 'phone_office', 'type' => 'xsd:string'),
00171 'last_login' => array('name' => 'last_login', 'type' => 'xsd:string'),
00172 'last_update' => array('name' => 'last_update', 'type' => 'xsd:string'),
00173 'create_date' => array('name' => 'create_date', 'type' => 'xsd:string'),
00174 'hobby' => array('name' => 'hobby', 'type' => 'xsd:string'),
00175 'department' => array('name' => 'department', 'type' => 'xsd:string'),
00176 'phone_home' => array('name' => 'phone_home', 'type' => 'xsd:string'),
00177 'phone_mobile' => array('name' => 'phone_mobile', 'type' => 'xsd:string'),
00178 'fax' => array('name' => 'fax', 'type' => 'xsd:string'),
00179 'time_limit_owner' => array('name' => 'time_limit_owner', 'type' => 'xsd:int'),
00180 'time_limit_unlimited' => array('name' => 'time_limit_unlimited', 'type' => 'xsd:int'),
00181 'time_limit_from' => array('name' => 'time_limit_from', 'type' => 'xsd:int'),
00182 'time_limit_until' => array('name' => 'time_limit_until', 'type' => 'xsd:int'),
00183 'time_limit_message' => array('name' => 'time_limit_message', 'type' => 'xsd:int'),
00184 'referral_comment' => array('name' => 'referral_comment', 'type' => 'xsd:string'),
00185 'matriculation' => array('name' => 'matriculation', 'type' => 'xsd:string'),
00186 'active' => array('name' => 'active', 'type' => 'xsd:int'),
00187 'accepted_agreement' => array('name' => 'accepted_agreement','type' => 'xsd:boolean'),
00188 'approve_date' => array('name' => 'approve_date', 'type' => 'xsd:string'),
00189 'user_skin' => array('name' => 'user_skin', 'type' => 'xsd:string'),
00190 'user_style' => array('name' => 'user_style', 'type' => 'xsd:string'),
00191 'user_language' => array('name' => 'user_language', 'type' => 'xsd:string'),
00192 'import_id' => array('name' => 'import_id', 'type' => 'xsd:string')
00193 ));
00194
00195
00196
00197 $this->server->register('lookupUser',
00198 array('sid' => 'xsd:string',
00199 'user_name' => 'xsd:string'),
00200 array('usr_id' => 'xsd:int'),
00201 SERVICE_NAMESPACE,
00202 SERVICE_NAMESPACE.'#lookupUser',
00203 SERVICE_STYLE,
00204 SERVICE_USE,
00205 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.');
00206
00207
00208
00209 $this->server->register('getUser',
00210 array('sid' => 'xsd:string',
00211 'user_id' => 'xsd:int'),
00212 array('user_data' => 'tns:ilUserData'),
00213 SERVICE_NAMESPACE,
00214 SERVICE_NAMESPACE.'#getUser',
00215 SERVICE_STYLE,
00216 SERVICE_USE,
00217 'ILIAS getUser(): get complete set of user data.');
00218
00219 $this->server->register('updateUser',
00220 array('sid' => 'xsd:string',
00221 'user_data' => 'tns:ilUserData'),
00222 array('success' => 'xsd:boolean'),
00223 SERVICE_NAMESPACE,
00224 SERVICE_NAMESPACE.'#updateUser',
00225 SERVICE_STYLE,
00226 SERVICE_USE,
00227 'ILIAS updateUser(). DEPRECATED: Use importUsers() for modifications of user data. Updates all user data. '.
00228 'Use getUser(), then modify desired fields and finally start the updateUser() call.');
00229
00230 $this->server->register('updatePassword',
00231 array('sid' => 'xsd:string',
00232 'user_id' => 'xsd:int',
00233 'new_password' => 'xsd:string'),
00234 array('success' => 'xsd:boolean'),
00235 SERVICE_NAMESPACE,
00236 SERVICE_NAMESPACE.'#updatePassword',
00237 SERVICE_STYLE,
00238 SERVICE_USE,
00239 'ILIAS updatePassword(). Updates password of given user. Password must be MD5 hash');
00240
00241
00242
00243 $this->server->register('addUser',
00244 array('sid' => 'xsd:string',
00245 'user_data' => 'tns:ilUserData',
00246 'global_role_id' => 'xsd:int'),
00247 array('user_id' => 'xsd:int'),
00248 SERVICE_NAMESPACE,
00249 SERVICE_NAMESPACE.'#addUser',
00250 SERVICE_STYLE,
00251 SERVICE_USE,
00252 'ILIAS addUser() user. DEPRECATED: Since it is not possible to add new user data fields '.
00253 'without breaking the backward compatability, this method is deprecated. Please use importUser() instead. '.
00254 'Add new ILIAS user. Requires complete or subset of user_data structure');
00255
00256
00257 $this->server->register('deleteUser',
00258 array('sid' => 'xsd:string',
00259 'user_id' => 'xsd:int'),
00260 array('success' => 'xsd:boolean'),
00261 SERVICE_NAMESPACE,
00262 SERVICE_NAMESPACE.'#deleteUser',
00263 SERVICE_STYLE,
00264 SERVICE_USE,
00265 'ILIAS deleteUser(). Deletes all user related data (Bookmarks, Mails ...)');
00266
00267
00268 $this->server->register('addCourse',
00269 array('sid' => 'xsd:string',
00270 'target_id' => 'xsd:int',
00271 'crs_xml' => 'xsd:string'),
00272 array('course_id' => 'xsd:int'),
00273 SERVICE_NAMESPACE,
00274 SERVICE_NAMESPACE.'#addCourse',
00275 SERVICE_STYLE,
00276 SERVICE_USE,
00277 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure');
00278
00279
00280 $this->server->register('deleteCourse',
00281 array('sid' => 'xsd:string',
00282 'course_id' => 'xsd:int'),
00283 array('success' => 'xsd:boolean'),
00284 SERVICE_NAMESPACE,
00285 SERVICE_NAMESPACE.'#deleteCourse',
00286 SERVICE_STYLE,
00287 SERVICE_USE,
00288 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in '.
00289 ' the ILIAS administration. ');
00290
00291 $this->server->register('assignCourseMember',
00292 array('sid' => 'xsd:string',
00293 'course_id' => 'xsd:int',
00294 'user_id' => 'xsd:int',
00295 'type' => 'xsd:string'),
00296 array('success' => 'xsd:boolean'),
00297 SERVICE_NAMESPACE,
00298 SERVICE_NAMESPACE.'#assignCourseMember',
00299 SERVICE_STYLE,
00300 SERVICE_USE,
00301 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"');
00302
00303
00304 $this->server->register('excludeCourseMember',
00305 array('sid' => 'xsd:string',
00306 'course_id' => 'xsd:int',
00307 'user_id' => 'xsd:int'),
00308 array('success' => 'xsd:boolean'),
00309 SERVICE_NAMESPACE,
00310 SERVICE_NAMESPACE.'#excludeCourseMember',
00311 SERVICE_STYLE,
00312 SERVICE_USE,
00313 'ILIAS excludeCourseMember(). Excludes an user from an existing course.');
00314
00315
00316 $this->server->register('isAssignedToCourse',
00317 array('sid' => 'xsd:string',
00318 'course_id' => 'xsd:int',
00319 'user_id' => 'xsd:int'),
00320 array('role' => 'xsd:int'),
00321 SERVICE_NAMESPACE,
00322 SERVICE_NAMESPACE.'#isAssignedToCourse',
00323 SERVICE_STYLE,
00324 SERVICE_USE,
00325 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. '.
00326 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor');
00327
00328
00329 $this->server->register('getCourseXML',
00330 array('sid' => 'xsd:string',
00331 'course_id' => 'xsd:int'),
00332 array('xml' => 'xsd:string'),
00333 SERVICE_NAMESPACE,
00334 SERVICE_NAMESPACE.'#getCourseXML',
00335 SERVICE_STYLE,
00336 SERVICE_USE,
00337 'ILIAS getCourseXML(). Get a xml description of a specific course.');
00338
00339
00340 $this->server->register('updateCourse',
00341 array('sid' => 'xsd:string',
00342 'course_id' => 'xsd:int',
00343 'xml' => 'xsd:string'),
00344 array('success' => 'xsd:boolean'),
00345 SERVICE_NAMESPACE,
00346 SERVICE_NAMESPACE.'#updateCourse',
00347 SERVICE_STYLE,
00348 SERVICE_USE,
00349 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a '.
00350 'given xml description');
00351
00352
00353 $this->server->register('getObjIdByImportId',
00354 array('sid' => 'xsd:string',
00355 'import_id' => 'xsd:string'),
00356 array('obj_id' => 'xsd:int'),
00357 SERVICE_NAMESPACE,
00358 SERVICE_NAMESPACE.'#getCourseIdByImportId',
00359 SERVICE_STYLE,
00360 SERVICE_USE,
00361 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.');
00362
00363
00364
00365 $this->server->register('getRefIdsByImportId',
00366 array('sid' => 'xsd:string',
00367 'import_id' => 'xsd:string'),
00368 array('ref_ids' => 'tns:intArray'),
00369 SERVICE_NAMESPACE,
00370 SERVICE_NAMESPACE.'#getRefIdsByImportId',
00371 SERVICE_STYLE,
00372 SERVICE_USE,
00373 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.');
00374
00375
00376 $this->server->register('getRefIdsByObjId',
00377 array('sid' => 'xsd:string',
00378 'obj_id' => 'xsd:string'),
00379 array('ref_ids' => 'tns:intArray'),
00380 SERVICE_NAMESPACE,
00381 SERVICE_NAMESPACE.'#getRefIdsByObjId',
00382 SERVICE_STYLE,
00383 SERVICE_USE,
00384 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.');
00385
00386
00387 $this->server->register('getObjectByReference',
00388 array('sid' => 'xsd:string',
00389 'reference_id' => 'xsd:int',
00390 'user_id' => 'xsd:int'),
00391 array('object_xml' => 'xsd:string'),
00392 SERVICE_NAMESPACE,
00393 SERVICE_NAMESPACE.'#getObjectByReference',
00394 SERVICE_STYLE,
00395 SERVICE_USE,
00396 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, '.
00397 'this methods also checks the permissions of that user on the object.');
00398
00399 $this->server->register('getObjectsByTitle',
00400 array('sid' => 'xsd:string',
00401 'title' => 'xsd:string',
00402 'user_id' => 'xsd:int'),
00403 array('object_xml' => 'xsd:string'),
00404 SERVICE_NAMESPACE,
00405 SERVICE_NAMESPACE.'#getObjectsByTitle',
00406 SERVICE_STYLE,
00407 SERVICE_USE,
00408 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. '.
00409 'If a user id is given this method also checks the permissions of that user on the object.');
00410
00411 $this->server->register('searchObjects',
00412 array('sid' => 'xsd:string',
00413 'types' => 'tns:stringArray',
00414 'key' => 'xsd:string',
00415 'combination' => 'xsd:string',
00416 'user_id' => 'xsd:int'),
00417 array('object_xml' => 'xsd:string'),
00418 SERVICE_NAMESPACE,
00419 SERVICE_NAMESPACE.'#searchObjects',
00420 SERVICE_STYLE,
00421 SERVICE_USE,
00422 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" '.
00423 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); '.
00424 ' If an optional user id is given, this methods also return the permissions for that user '.
00425 'on the found objects');
00426
00427 $this->server->register('getTreeChilds',
00428 array('sid' => 'xsd:string',
00429 'ref_id' => 'xsd:int',
00430 'types' => 'tns:stringArray',
00431 'user_id' => 'xsd:int'),
00432 array('object_xml' => 'xsd:string'),
00433 SERVICE_NAMESPACE,
00434 SERVICE_NAMESPACE.'#getTreeChilds',
00435 SERVICE_STYLE,
00436 SERVICE_USE,
00437 'ILIAS getTreeChilds(): Get all child objects of a given object.'.
00438 'Choose array of types to filter the output. Choose empty type array to receive all object types');
00439
00440 $this->server->register('getXMLTree',
00441 array('sid' => 'xsd:string',
00442 'ref_id' => 'xsd:int',
00443 'types' => 'tns:stringArray',
00444 'user_id' => 'xsd:int'),
00445 array('object_xml' => 'xsd:string'),
00446 SERVICE_NAMESPACE,
00447 SERVICE_NAMESPACE.'#getXMLTree',
00448 SERVICE_STYLE,
00449 SERVICE_USE,
00450 'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.');
00451
00452
00453
00454 $this->server->register('addObject',
00455 array('sid' => 'xsd:string',
00456 'target_id' => 'xsd:int',
00457 'object_xml' => 'xsd:string'),
00458 array('ref_id' => 'xsd:int'),
00459 SERVICE_NAMESPACE,
00460 SERVICE_NAMESPACE.'#addObject',
00461 SERVICE_STYLE,
00462 SERVICE_USE,
00463 'ILIAS addObject. Create new object based on xml description under a given node '.
00464 '("category,course,group or folder). Return created reference id of the new object.' );
00465
00466 $this->server->register('updateObjects',
00467 array('sid' => 'xsd:string',
00468 'object_xml' => 'xsd:string'),
00469 array('success' => 'xsd:boolean'),
00470 SERVICE_NAMESPACE,
00471 SERVICE_NAMESPACE.'#updateObjects',
00472 SERVICE_STYLE,
00473 SERVICE_USE,
00474 'ILIAS updateObjects. Update object data (title,description,owner)');
00475
00476 $this->server->register('addReference',
00477 array('sid' => 'xsd:string',
00478 'source_id' => 'xsd:int',
00479 'target_id' => 'xsd:int'),
00480 array('ref_id' => 'xsd:int'),
00481 SERVICE_NAMESPACE,
00482 SERVICE_NAMESPACE.'#addReference',
00483 SERVICE_STYLE,
00484 SERVICE_USE,
00485 'ILIAS addReference. Create new link of given object to new object. Return the new reference id');
00486
00487 $this->server->register('deleteObject',
00488 array('sid' => 'xsd:string',
00489 'reference_id' => 'xsd:int'),
00490 array('success' => 'xsd:boolean'),
00491 SERVICE_NAMESPACE,
00492 SERVICE_NAMESPACE.'#deleteObject',
00493 SERVICE_STYLE,
00494 SERVICE_USE,
00495 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ');
00496
00497
00498 $this->server->register('removeFromSystemByImportId',
00499 array('sid' => 'xsd:string',
00500 'import_id' => 'xsd:string'),
00501 array('success' => 'xsd:boolean'),
00502 SERVICE_NAMESPACE,
00503 SERVICE_NAMESPACE.'#removeFromSystemByImportId',
00504 SERVICE_STYLE,
00505 SERVICE_USE,
00506 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the '.
00507 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use '.
00508 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.');
00509
00510 $this->server->register('addUserRoleEntry',
00511 array('sid' => 'xsd:string',
00512 'user_id' => 'xsd:int',
00513 'role_id' => 'xsd:int'),
00514 array('success' => 'xsd:boolean'),
00515 SERVICE_NAMESPACE,
00516 SERVICE_NAMESPACE.'#addUserRoleEntry',
00517 SERVICE_STYLE,
00518 SERVICE_USE,
00519 'ILIAS addUserRoleEntry. Assign user to role.');
00520
00521 $this->server->register('deleteUserRoleEntry',
00522 array('sid' => 'xsd:string',
00523 'user_id' => 'xsd:int',
00524 'role_id' => 'xsd:int'),
00525 array('success' => 'xsd:boolean'),
00526 SERVICE_NAMESPACE,
00527 SERVICE_NAMESPACE.'#deleteUserRoleEntry',
00528 SERVICE_STYLE,
00529 SERVICE_USE,
00530 'ILIAS deleteUserRoleEntry. Deassign user from role.');
00531
00532
00533
00534 $this->server->wsdl->addComplexType('ilOperation',
00535 'complexType',
00536 'struct',
00537 'all',
00538 '',
00539 array('ops_id' => array('name' => 'ops_id',
00540 'type' => 'xsd:int'),
00541 'operation' => array('name' => 'operation',
00542 'type' => 'xsd:string'),
00543 'description' => array('name' => 'description',
00544 'type' => 'xsd:string')));
00545
00546 $this->server->wsdl->addComplexType('ilOperations',
00547 'complexType',
00548 'array',
00549 '',
00550 'SOAP-ENC:Array',
00551 array(),
00552 array(array('ref' => 'SOAP-ENC:arrayType',
00553 'wsdl:arrayType' => 'tns:ilOperation[]')),
00554 'tns:ilOperation');
00555 $this->server->register('getOperations',
00556 array('sid' => 'xsd:string'),
00557 array('operations' => 'tns:ilOperations'),
00558 SERVICE_NAMESPACE,
00559 SERVICE_NAMESPACE.'#getOperations',
00560 SERVICE_STYLE,
00561 SERVICE_USE,
00562 'ILIAS getOperations(): get complete set of RBAC operations.');
00563
00564 $this->server->register('revokePermissions',
00565 array('sid' => 'xsd:string',
00566 'ref_id' => 'xsd:int',
00567 'role_id' => 'xsd:int'),
00568 array('success' => 'xsd:boolean'),
00569 SERVICE_NAMESPACE,
00570 SERVICE_NAMESPACE.'#revokePermissions',
00571 SERVICE_STYLE,
00572 SERVICE_USE,
00573 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.');
00574
00575 $this->server->wsdl->addComplexType('ilOperationIds',
00576 'complexType',
00577 'array',
00578 '',
00579 'SOAP-ENC:Array',
00580 array(),
00581 array(array('ref' => 'SOAP-ENC:arrayType',
00582 'wsdl:arrayType' => 'xsd:int[]')),
00583 'xsd:int');
00584
00585 $this->server->register('grantPermissions',
00586 array('sid' => 'xsd:string',
00587 'ref_id' => 'xsd:int',
00588 'role_id' => 'xsd:int',
00589 'operations' => 'tns:intArray'),
00590 array('success' => 'xsd:boolean'),
00591 SERVICE_NAMESPACE,
00592 SERVICE_NAMESPACE.'#grantPermissions',
00593 SERVICE_STYLE,
00594 SERVICE_USE,
00595 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. '.
00596 '(Substitutes existing permission settings)');
00597
00598 $this->server->register('getLocalRoles',
00599 array('sid' => 'xsd:string',
00600 'ref_id' => 'xsd:int'),
00601 array('role_xml' => 'xsd:string'),
00602 SERVICE_NAMESPACE,
00603 SERVICE_NAMESPACE.'#getLocalRoles',
00604 SERVICE_STYLE,
00605 SERVICE_USE,
00606 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.');
00607
00608 $this->server->register('getUserRoles',
00609 array('sid' => 'xsd:string',
00610 'user_id' => 'xsd:int'),
00611 array('role_xml' => 'xsd:string'),
00612 SERVICE_NAMESPACE,
00613 SERVICE_NAMESPACE.'#getLocalRoles',
00614 SERVICE_STYLE,
00615 SERVICE_USE,
00616 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ');
00617
00618 $this->server->register('addRole',
00619 array('sid' => 'xsd:string',
00620 'target_id' => 'xsd:int',
00621 'obj_xml' => 'xsd:string'),
00622 array('role_ids' => 'tns:intArray'),
00623 SERVICE_NAMESPACE,
00624 SERVICE_NAMESPACE.'#addRole',
00625 SERVICE_STYLE,
00626 SERVICE_USE,
00627 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
00628 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.');
00629
00630 $this->server->register('deleteRole',
00631 array('sid' => 'xsd:string',
00632 'role_id' => 'xsd:int'),
00633 array('success' => 'xsd:boolean'),
00634 SERVICE_NAMESPACE,
00635 SERVICE_NAMESPACE.'#deleteRole',
00636 SERVICE_STYLE,
00637 SERVICE_USE,
00638 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user');
00639
00640 $this->server->register('addRoleFromTemplate',
00641 array('sid' => 'xsd:string',
00642 'target_id' => 'xsd:int',
00643 'obj_xml' => 'xsd:string',
00644 'role_template_id' => 'xsd:int'),
00645 array('role_ids' => 'tns:intArray'),
00646 SERVICE_NAMESPACE,
00647 SERVICE_NAMESPACE.'#addRole',
00648 SERVICE_STYLE,
00649 SERVICE_USE,
00650 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
00651 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. '.
00652 'In addition to addRole the template permissions will be copied from the given role template');
00653
00654 $this->server->register('getObjectTreeOperations',
00655 array('sid' => 'xsd:string',
00656 'ref_id' => 'xsd:int',
00657 'user_id' => 'xsd:int'),
00658 array('operations' => 'tns:ilOperations'),
00659 SERVICE_NAMESPACE,
00660 SERVICE_NAMESPACE.'#getPermissionsForObject',
00661 SERVICE_STYLE,
00662 SERVICE_USE,
00663 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of '.
00664 'an object for a specific user. Returns array of granted operations or empty array');
00665
00666 $this->server->register('addGroup',
00667 array('sid' => 'xsd:string',
00668 'target_id' => 'xsd:int',
00669 'group_xml' => 'xsd:string'),
00670 array('ref_id' => 'xsd:int'),
00671 SERVICE_NAMESPACE,
00672 SERVICE_NAMESPACE.'#addGroup',
00673 SERVICE_STYLE,
00674 SERVICE_USE,
00675 'ILIAS addGroup(): Add grop according to valid group XML '.
00676 '@See ilias_group_0_1.dtd');
00677
00678 $this->server->register('groupExists',
00679 array('sid' => 'xsd:string',
00680 'title' => 'xsd:string'),
00681 array('exists' => 'xsd:boolean'),
00682 SERVICE_NAMESPACE,
00683 SERVICE_NAMESPACE.'#groupExists',
00684 SERVICE_STYLE,
00685 SERVICE_USE,
00686 'ILIAS addGroup(): Check if group with given name exists. ');
00687
00688
00689
00690 $this->server->register('getGroup',
00691 array('sid' => 'xsd:string',
00692 'ref_id' => 'xsd:int'),
00693 array('group_xml' => 'xsd:string'),
00694 SERVICE_NAMESPACE,
00695 SERVICE_NAMESPACE.'#getGroup',
00696 SERVICE_STYLE,
00697 SERVICE_USE,
00698 'ILIAS getGroup(): get xml description of grouip with given reference id.');
00699
00700
00701 $this->server->register('assignGroupMember',
00702 array('sid' => 'xsd:string',
00703 'group_id' => 'xsd:int',
00704 'user_id' => 'xsd:int',
00705 'type' => 'xsd:string'),
00706 array('success' => 'xsd:boolean'),
00707 SERVICE_NAMESPACE,
00708 SERVICE_NAMESPACE.'#assignGroupMember',
00709 SERVICE_STYLE,
00710 SERVICE_USE,
00711 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"');
00712
00713
00714 $this->server->register('excludeGroupMember',
00715 array('sid' => 'xsd:string',
00716 'group_id' => 'xsd:int',
00717 'user_id' => 'xsd:int'),
00718 array('success' => 'xsd:boolean'),
00719 SERVICE_NAMESPACE,
00720 SERVICE_NAMESPACE.'#excludeGroupMember',
00721 SERVICE_STYLE,
00722 SERVICE_USE,
00723 'ILIAS excludeGroupMember(). Excludes an user from an existing group.');
00724
00725
00726 $this->server->register('isAssignedToGroup',
00727 array('sid' => 'xsd:string',
00728 'group_id' => 'xsd:int',
00729 'user_id' => 'xsd:int'),
00730 array('role' => 'xsd:int'),
00731 SERVICE_NAMESPACE,
00732 SERVICE_NAMESPACE.'#isAssignedToGroup',
00733 SERVICE_STYLE,
00734 SERVICE_USE,
00735 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. '.
00736 'Returns 0 => not assigned, 1 => group admin, 2 => group member');
00737
00738
00739
00740
00741 $this->server->register('sendMail',
00742 array('sid' => 'xsd:string',
00743 'rcp_to' => 'xsd:string',
00744 'rcp_cc' => 'xsd:string',
00745 'rcp_bcc' => 'xsd:string',
00746 'sender' => 'xsd:string',
00747 'subject' => 'xsd:string',
00748 'message' => 'xsd:string',
00749 'attachments' => 'xsd:string'),
00750 array('status' => 'xsd:boolean'),
00751 SERVICE_NAMESPACE,
00752 SERVICE_NAMESPACE.'#sendMail',
00753 SERVICE_STYLE,
00754 SERVICE_USE,
00755 'ILIAS sendMail(): Send mime mails according to xml description. Only for internal usage '.
00756 'Syntax, parameters may change in future releases');
00757
00758 $this->server->register('ilClone',
00759 array('sid' => 'xsd:string','copy_identifier' => 'xsd:int'),
00760 array('new_ref_id' => 'xsd:int'),
00761 SERVICE_NAMESPACE,
00762 SERVICE_NAMESPACE.'#ilClone',
00763 SERVICE_STYLE,
00764 SERVICE_USE,
00765 'ILIAS ilClone(): Only for internal usage.'.
00766 'Syntax, parameters may change in future releases. ');
00767
00768 $this->server->register('ilCloneDependencies',
00769 array('sid' => 'xsd:string','copy_identifier' => 'xsd:int'),
00770 array('success' => 'xsd:boolean'),
00771 SERVICE_NAMESPACE,
00772 SERVICE_NAMESPACE.'#ilCloneDependencies',
00773 SERVICE_STYLE,
00774 SERVICE_USE,
00775 'ILIAS ilCloneDependencies(): Only for internal usage.'.
00776 'Syntax, parameters may change in future releases. ');
00777
00778 $this->server->register('saveQuestionResult',
00779 array('sid' => 'xsd:string',
00780 'user_id' => 'xsd:int',
00781 'test_id' => 'xsd:int',
00782 'question_id' => 'xsd:int',
00783 'pass' => 'xsd:int',
00784 'solution' => 'tns:stringArray'),
00785 array('status' => 'xsd:boolean'),
00786 SERVICE_NAMESPACE,
00787 SERVICE_NAMESPACE.'#saveQuestionResult',
00788 SERVICE_STYLE,
00789 SERVICE_USE,
00790 'ILIAS saveQuesionResult: Typically called from an external assessment question to save the user input. DEPRECATED since ILIAS 3.9');
00791
00792 $this->server->register('saveQuestion',
00793 array('sid' => 'xsd:string',
00794 'active_id' => 'xsd:long',
00795 'question_id' => 'xsd:long',
00796 'pass' => 'xsd:int',
00797 'solution' => 'tns:stringArray'),
00798 array('status' => 'xsd:boolean'),
00799 SERVICE_NAMESPACE,
00800 SERVICE_NAMESPACE.'#saveQuestion',
00801 SERVICE_STYLE,
00802 SERVICE_USE,
00803 '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.');
00804
00805 $this->server->register('getQuestionSolution',
00806 array('sid' => 'xsd:string',
00807 'active_id' => 'xsd:long',
00808 'question_id' => 'xsd:int',
00809 'pass' => 'xsd:int'),
00810 array('solution' => 'tns:stringArray'),
00811 SERVICE_NAMESPACE,
00812 SERVICE_NAMESPACE.'#getQuestionSolution',
00813 SERVICE_STYLE,
00814 SERVICE_USE,
00815 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.');
00816
00817 $this->server->register('getStructureObjects',
00818 array('sid' => 'xsd:string',
00819 'ref_id' => 'xsd:int'),
00820 array('xml' => 'xsd:string'),
00821 SERVICE_NAMESPACE,
00822 SERVICE_NAMESPACE.'#getStructureObjects',
00823 SERVICE_STYLE,
00824 SERVICE_USE,
00825 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)');
00826
00827
00828 $this->server->register('importUsers',
00829 array('sid' => 'xsd:string',
00830 'folder_id' => 'xsd:int',
00831 'usr_xml' => 'xsd:string',
00832 'conflict_rule' => 'xsd:int',
00833 'send_account_mail' => 'xsd:int'),
00834 array('protocol' => 'xsd:string'),
00835 SERVICE_NAMESPACE,
00836 SERVICE_NAMESPACE.'#importUsers',
00837 SERVICE_STYLE,
00838 SERVICE_USE,
00839 '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');
00840
00841 $this->server->register('getRoles',
00842 array('sid' => 'xsd:string',
00843 'role_type' => 'xsd:string',
00844 'id' => 'xsd:string'),
00845 array('role_xml' => 'xsd:string'),
00846 SERVICE_NAMESPACE,
00847 SERVICE_NAMESPACE.'#getRoles',
00848 SERVICE_STYLE,
00849 SERVICE_USE,
00850 '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');
00851
00852 $this->server->register('getUsersForContainer',
00853 array('sid' => 'xsd:string',
00854 'ref_id' => 'xsd:int',
00855 'attach_roles' => 'xsd:int',
00856 'active' => 'xsd:int'),
00857 array('user_xml' => 'xsd:string'),
00858 SERVICE_NAMESPACE,
00859 SERVICE_NAMESPACE.'#getUsersForContainer',
00860 SERVICE_STYLE,
00861 SERVICE_USE,
00862 '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');
00863
00864 $this->server->register('getUsersForRole',
00865 array('sid' => 'xsd:string',
00866 'role_id' => 'xsd:int',
00867 'attach_roles' => 'xsd:int',
00868 'active' => 'xsd:int'),
00869 array('user_xml' => 'xsd:string'),
00870 SERVICE_NAMESPACE,
00871 SERVICE_NAMESPACE.'#getUsersForRole',
00872 SERVICE_STYLE,
00873 SERVICE_USE,
00874 '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');
00875
00876 $this->server->register('searchUser',
00877 array('sid' => 'xsd:string',
00878 'key_fields' => 'tns:stringArray',
00879 'query_operator' => 'xsd:string',
00880 'key_values' => 'tns:stringArray',
00881 'attach_roles' => 'xsd:int',
00882 'active' => 'xsd:int'),
00883
00884 array('user_xml' => 'xsd:string'),
00885 SERVICE_NAMESPACE,
00886 SERVICE_NAMESPACE.'#searchUsers',
00887 SERVICE_STYLE,
00888 SERVICE_USE,
00889 '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');
00890
00891
00892
00893 $this->server->register('hasNewMail',
00894 array('sid' => 'xsd:string'),
00895 array('status' => 'xsd:boolean'),
00896 SERVICE_NAMESPACE,
00897 SERVICE_NAMESPACE.'#hasNewMail',
00898 SERVICE_STYLE,
00899 SERVICE_USE,
00900 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.');
00901
00902 $this->server->register('getNIC',
00903 array('sid' => 'xsd:string'),
00904 array('xmlresultset' => 'xsd:string'),
00905 SERVICE_NAMESPACE,
00906 SERVICE_NAMESPACE.'#getNIC',
00907 SERVICE_STYLE,
00908 SERVICE_USE,
00909 'ILIAS getNIC(): return client information from current client as xml result set containing installation_id, installation_version, installation_url, installation_description, installation_language_default as columns');
00910
00911 $this->server->register('getExerciseXML',
00912 array('sid' => 'xsd:string', "ref_id" => 'xsd:int', "attachment_mode" => "xsd:int"),
00913 array('exercisexml' => 'xsd:string'),
00914 SERVICE_NAMESPACE,
00915 SERVICE_NAMESPACE.'#getExerciseXML',
00916 SERVICE_STYLE,
00917 SERVICE_USE,
00918 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
00919
00920 $this->server->register('addExercise',
00921 array('sid' => 'xsd:string', "target_id" => 'xsd:int', "xml" => "xsd:string"),
00922 array('refid' => 'xsd:int'),
00923 SERVICE_NAMESPACE,
00924 SERVICE_NAMESPACE.'#addExercise',
00925 SERVICE_STYLE,
00926 SERVICE_USE,
00927 '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!');
00928
00929 $this->server->register('updateExercise',
00930 array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
00931 array('success' => 'xsd:boolean'),
00932 SERVICE_NAMESPACE,
00933 SERVICE_NAMESPACE.'#updateExercise',
00934 SERVICE_STYLE,
00935 SERVICE_USE,
00936 '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.!');
00937
00938 $this->server->register('getFileXML',
00939 array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'attachment_mode' => 'xsd:int'),
00940 array('filexml' => 'xsd:string'),
00941 SERVICE_NAMESPACE,
00942 SERVICE_NAMESPACE.'#getFileXML',
00943 SERVICE_STYLE,
00944 SERVICE_USE,
00945 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
00946
00947 $this->server->register('addFile',
00948 array('sid' => 'xsd:string', 'target_id' => 'xsd:int', 'xml' => 'xsd:string'),
00949 array('refid' => 'xsd:int'),
00950 SERVICE_NAMESPACE,
00951 SERVICE_NAMESPACE.'#addFile',
00952 SERVICE_STYLE,
00953 SERVICE_USE,
00954 '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!');
00955
00956 $this->server->register('updateFile',
00957 array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
00958 array('success' => 'xsd:boolean'),
00959 SERVICE_NAMESPACE,
00960 SERVICE_NAMESPACE.'#updateFile',
00961 SERVICE_STYLE,
00962 SERVICE_USE,
00963 '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.!');
00964
00965
00966 $this->server->register('getUserXML',
00967 array('sid' => 'xsd:string', 'user_ids' => 'tns:intArray', 'attach_roles' => 'xsd:int'),
00968 array('xml' => 'xsd:string'),
00969 SERVICE_NAMESPACE,
00970 SERVICE_NAMESPACE.'#resolveUsers',
00971 SERVICE_STYLE,
00972 SERVICE_USE,
00973 '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');
00974
00975
00976
00977 $this->server->register('getObjIdsByRefIds',
00978 array('sid' => 'xsd:string',
00979 'ref_ids' => 'tns:intArray'),
00980 array('obj_ids' => 'tns:intArray'),
00981 SERVICE_NAMESPACE,
00982 SERVICE_NAMESPACE.'#getRefIdsByImportId',
00983 SERVICE_STYLE,
00984 SERVICE_USE,
00985 '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');
00986
00987 $this->server->register('updateGroup',
00988 array('sid' => 'xsd:string', 'ref_id' => 'xsd:int', 'xml' => 'xsd:string'),
00989 array('success' => 'xsd:boolean'),
00990 SERVICE_NAMESPACE,
00991 SERVICE_NAMESPACE.'#updateGroup',
00992 SERVICE_STYLE,
00993 SERVICE_USE,
00994 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).');
00995
00996
00997
00998 $this->server->register('getIMSManifestXML',
00999 array('sid' => 'xsd:string', 'ref_id' => 'xsd:int'),
01000 array('xml' => 'xsd:string'),
01001 SERVICE_NAMESPACE,
01002 SERVICE_NAMESPACE.'#getIMSManifestXML',
01003 SERVICE_STYLE,
01004 SERVICE_USE,
01005 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid');
01006
01007
01008 return true;
01009
01010 }
01011
01012 }
01013 ?>