34 include_once 
'./webservice/soap/lib/nusoap.php';
 
   35 include_once 
'./webservice/soap/include/inc.soap_functions.php';
 
   47                 define(
'SERVICE_NAME',
'ILIASSoapWebservice');
 
   48                 define(
'SERVICE_NAMESPACE',
'urn:ilUserAdministration');
 
   49                 define(
'SERVICE_STYLE',
'rpc');
 
   50                 define(
'SERVICE_USE',
'encoded');
 
   51                 global $debug; $debug = 
true;
 
   53                 $this->server->decode_utf8 = 
false;
 
   54                 $this->server->class = 
"ilSoapFunctions";
 
   70                 $this->server->service($HTTP_RAW_POST_DATA);
 
   77                 $this->server->configureWSDL(SERVICE_NAME,SERVICE_NAMESPACE);
 
   87                 $this->server->wsdl->addComplexType(
'intArray',
 
   93                                                                                         array(array(
'ref'=>
'SOAP-ENC:arrayType',
'wsdl:arrayType'=>
'xsd:int[]')),
 
   96                 $this->server->wsdl->addComplexType(
'stringArray',
 
  102                                                                                         array(array(
'ref'=>
'SOAP-ENC:arrayType',
'wsdl:arrayType'=>
'xsd:string[]')),
 
  105                 $this->server->wsdl->addComplexType(
'doubleArray',
 
  111                                                                                         array(array(
'ref'=>
'SOAP-ENC:arrayType',
'wsdl:arrayType'=>
'xsd:double[]')),
 
  117                 $this->server->register(
'login',
 
  118                                                                 array(
'client' => 
'xsd:string',
 
  119                                                                           'username' => 
'xsd:string',
 
  120                                                                           'password' => 
'xsd:string'),
 
  121                                                                 array(
'sid' => 
'xsd:string'),
 
  123                                                                 SERVICE_NAMESPACE.
'#login',
 
  126                                                                 'ILIAS login function');
 
  129                 $this->server->register(
'loginCAS',
 
  130                                                                 array(
'client' => 
'xsd:string',
 
  131                                                                           'PT' => 
'xsd:string',
 
  132                                                                           'user' => 
'xsd:string'),
 
  133                                                                 array(
'sid' => 
'xsd:string'),
 
  135                                                                 SERVICE_NAMESPACE.
'#loginCAS',
 
  138                                                                 'ILIAS login function via CAS');
 
  140                 $this->server->register(
'loginLDAP',
 
  141                                                                 array(
'client' => 
'xsd:string',
 
  142                                                                           'username' => 
'xsd:string',
 
  143                                                                           'password' => 
'xsd:string'),
 
  144                                                                 array(
'sid' => 
'xsd:string'),
 
  146                                                                 SERVICE_NAMESPACE.
'#login',
 
  149                                                                 'ILIAS login function via LDAP');
 
  154                 $this->server->register(
'logout',
 
  155                                                                 array(
'sid' => 
'xsd:string'),
 
  156                                                                 array(
'success' => 
'xsd:boolean'),
 
  158                                                                 SERVICE_NAMESPACE.
'#logout',
 
  161                                                                 'ILIAS logout function');
 
  163                 $this->server->wsdl->addComplexType(
'ilUserData',
 
  168                                                                                         array(
'usr_id' => array(
'name' => 
'usr_id',
'type' => 
'xsd:int'),
 
  169                                                                                                   'login' => array(
'name' => 
'login', 
'type' => 
'xsd:string'),
 
  170                                                                                                   'passwd' => array(
'name' => 
'passwd', 
'type' => 
'xsd:string'),
 
  171                                                                                                   'firstname' => array(
'name' => 
'firstname', 
'type' => 
'xsd:string'),
 
  172                                                                                                   'lastname' => array(
'name' => 
'lastname', 
'type' => 
'xsd:string'),
 
  173                                                                                                   'title' => array(
'name' => 
'title', 
'type' => 
'xsd:string'),
 
  174                                                                                                   'gender' => array(
'name' => 
'gender', 
'type' => 
'xsd:string'),
 
  175                                                                                                   'email' => array(
'name' => 
'email', 
'type' => 
'xsd:string'),
 
  176                                                                                                   'institution' => array(
'name' => 
'institution', 
'type' => 
'xsd:string'),
 
  177                                                                                                   'street' => array(
'name' => 
'street', 
'type' => 
'xsd:string'),
 
  178                                                                                                   'city' => array(
'name' => 
'city', 
'type' => 
'xsd:string'),
 
  179                                                                                                   'zipcode' => array(
'name' => 
'zipcode', 
'type' => 
'xsd:string'),
 
  180                                                                                                   'country' => array(
'name' => 
'country', 
'type' => 
'xsd:string'),
 
  181                                                                                                   'phone_office' => array(
'name' => 
'phone_office', 
'type' => 
'xsd:string'),
 
  182                                                                                                   'last_login' => array(
'name' => 
'last_login', 
'type' => 
'xsd:string'),
 
  183                                                                                                   'last_update' => array(
'name' => 
'last_update', 
'type' => 
'xsd:string'),
 
  184                                                                                                   'create_date' => array(
'name' => 
'create_date', 
'type' => 
'xsd:string'),
 
  185                                                                                                   'hobby' => array(
'name' => 
'hobby', 
'type' => 
'xsd:string'),
 
  186                                                                                                   'department' => array(
'name' => 
'department', 
'type' => 
'xsd:string'),
 
  187                                                                                                   'phone_home' => array(
'name' => 
'phone_home', 
'type' => 
'xsd:string'),
 
  188                                                                                                   'phone_mobile' => array(
'name' => 
'phone_mobile', 
'type' => 
'xsd:string'),
 
  189                                                                                                   'fax' => array(
'name' => 
'fax', 
'type' => 
'xsd:string'),
 
  190                                                                                                   'time_limit_owner' => array(
'name' => 
'time_limit_owner', 
'type' => 
'xsd:int'),
 
  191                                                                                                   'time_limit_unlimited' => array(
'name' => 
'time_limit_unlimited', 
'type' => 
'xsd:int'),
 
  192                                                                                                   'time_limit_from' => array(
'name' => 
'time_limit_from', 
'type' => 
'xsd:int'),
 
  193                                                                                                   'time_limit_until' => array(
'name' => 
'time_limit_until', 
'type' => 
'xsd:int'),
 
  194                                                                                                   'time_limit_message' => array(
'name' => 
'time_limit_message', 
'type' => 
'xsd:int'),
 
  195                                                                                                   'referral_comment' => array(
'name' => 
'referral_comment', 
'type' => 
'xsd:string'),
 
  196                                                                                                   'matriculation' => array(
'name' => 
'matriculation', 
'type' => 
'xsd:string'),
 
  197                                                                                                   'active' => array(
'name' => 
'active', 
'type' => 
'xsd:int'),
 
  198                                                                                                   'accepted_agreement' => array(
'name' => 
'accepted_agreement',
'type' => 
'xsd:boolean'),
 
  199                                                                                                   'approve_date' => array(
'name' => 
'approve_date', 
'type' => 
'xsd:string'),
 
  200                                                                                                   'user_skin' => array(
'name' => 
'user_skin', 
'type' => 
'xsd:string'),
 
  201                                                                                                   'user_style' => array(
'name' => 
'user_style', 
'type' => 
'xsd:string'),
 
  202                                                                                                   'user_language' => array(
'name' => 
'user_language', 
'type' => 
'xsd:string'),
 
  203                                                                                                   'import_id' => array(
'name' => 
'import_id', 
'type' => 
'xsd:string')
 
  208                 $this->server->register(
'lookupUser',
 
  209                                                                 array(
'sid' => 
'xsd:string',
 
  210                                                                           'user_name' => 
'xsd:string'),
 
  211                                                                 array(
'usr_id' => 
'xsd:int'),
 
  213                                                                 SERVICE_NAMESPACE.
'#lookupUser',
 
  216                                                                 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.');
 
  220                 $this->server->register(
'getUser',
 
  221                                                                 array(
'sid' => 
'xsd:string',
 
  222                                                                           'user_id' => 
'xsd:int'),
 
  223                                                                 array(
'user_data' => 
'tns:ilUserData'),
 
  225                                                                 SERVICE_NAMESPACE.
'#getUser',
 
  228                                                                 'ILIAS getUser(): get complete set of user data.');
 
  230                 $this->server->register(
'updateUser',
 
  231                                                                 array(
'sid' => 
'xsd:string',
 
  232                                                                           'user_data' => 
'tns:ilUserData'),
 
  233                                                                 array(
'success' => 
'xsd:boolean'),
 
  235                                                                 SERVICE_NAMESPACE.
'#updateUser',
 
  238                                                                 'ILIAS updateUser(). DEPRECATED: Use importUsers() for modifications of user data. Updates all user data. '.
 
  239                                                                 'Use getUser(), then modify desired fields and finally start the updateUser() call.');
 
  241                 $this->server->register(
'updatePassword',
 
  242                                                                 array(
'sid' => 
'xsd:string',
 
  243                                                                           'user_id' => 
'xsd:int',
 
  244                                                                           'new_password' => 
'xsd:string'),
 
  245                                                                 array(
'success' => 
'xsd:boolean'),
 
  247                                                                 SERVICE_NAMESPACE.
'#updatePassword',
 
  250                                                                 'ILIAS updatePassword(). Updates password of given user. Password must be MD5 hash');
 
  254                 $this->server->register(
'addUser',
 
  255                                                                 array(
'sid' => 
'xsd:string',
 
  256                                                                           'user_data' => 
'tns:ilUserData',
 
  257                                                                           'global_role_id' => 
'xsd:int'),
 
  258                                                                 array(
'user_id' => 
'xsd:int'),
 
  260                                                                 SERVICE_NAMESPACE.
'#addUser',
 
  263                                                                 'ILIAS addUser() user. DEPRECATED: Since it is not possible to add new user data fields '.
 
  264                                                                 'without breaking the backward compatability, this method is deprecated. Please use importUser() instead. '.
 
  265                                                                 'Add new ILIAS user. Requires complete or subset of user_data structure');
 
  268                 $this->server->register(
'deleteUser',
 
  269                                                                 array(
'sid' => 
'xsd:string',
 
  270                                                                           'user_id' => 
'xsd:int'),
 
  271                                                                 array(
'success' => 
'xsd:boolean'),
 
  273                                                                 SERVICE_NAMESPACE.
'#deleteUser',
 
  276                                                                 'ILIAS deleteUser(). Deletes all user related data (Bookmarks, Mails ...)');
 
  279                 $this->server->register(
'addCourse',
 
  280                                                                 array(
'sid' => 
'xsd:string',
 
  281                                                                           'target_id' => 
'xsd:int',
 
  282                                                                           'crs_xml' => 
'xsd:string'),
 
  283                                                                 array(
'course_id' => 
'xsd:int'),
 
  285                                                                 SERVICE_NAMESPACE.
'#addCourse',
 
  288                                                                 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure');
 
  291                 $this->server->register(
'deleteCourse',
 
  292                                                                 array(
'sid' => 
'xsd:string',
 
  293                                                                           'course_id' => 
'xsd:int'),
 
  294                                                                 array(
'success' => 
'xsd:boolean'),
 
  296                                                                 SERVICE_NAMESPACE.
'#deleteCourse',
 
  299                                                                 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in '.
 
  300                                                                 ' the ILIAS administration. ');
 
  302                 $this->server->register(
'assignCourseMember',
 
  303                                                                 array(
'sid' => 
'xsd:string',
 
  304                                                                           'course_id' => 
'xsd:int',
 
  305                                                                           'user_id' => 
'xsd:int',
 
  306                                                                           'type' => 
'xsd:string'),
 
  307                                                                 array(
'success' => 
'xsd:boolean'),
 
  309                                                                 SERVICE_NAMESPACE.
'#assignCourseMember',
 
  312                                                                 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"');
 
  315                 $this->server->register(
'excludeCourseMember',
 
  316                                                                 array(
'sid' => 
'xsd:string',
 
  317                                                                           'course_id' => 
'xsd:int',
 
  318                                                                           'user_id' => 
'xsd:int'),
 
  319                                                                 array(
'success' => 
'xsd:boolean'),
 
  321                                                                 SERVICE_NAMESPACE.
'#excludeCourseMember',
 
  324                                                                 'ILIAS excludeCourseMember(). Excludes an user from an existing course.');
 
  327                 $this->server->register(
'isAssignedToCourse',
 
  328                                                                 array(
'sid' => 
'xsd:string',
 
  329                                                                           'course_id' => 
'xsd:int',
 
  330                                                                           'user_id' => 
'xsd:int'),
 
  331                                                                 array(
'role' => 
'xsd:int'),
 
  333                                                                 SERVICE_NAMESPACE.
'#isAssignedToCourse',
 
  336                                                                 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. '.
 
  337                                                                 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor');
 
  340                 $this->server->register(
'getCourseXML',
 
  341                                                                 array(
'sid' => 
'xsd:string',
 
  342                                                                           'course_id' => 
'xsd:int'),
 
  343                                                                 array(
'xml' => 
'xsd:string'),
 
  345                                                                 SERVICE_NAMESPACE.
'#getCourseXML',
 
  348                                                                 'ILIAS getCourseXML(). Get a xml description of a specific course.');
 
  351                 $this->server->register(
'updateCourse',
 
  352                                                                 array(
'sid' => 
'xsd:string',
 
  353                                                                           'course_id' => 
'xsd:int',
 
  354                                                                           'xml' => 
'xsd:string'),
 
  355                                                                 array(
'success' => 
'xsd:boolean'),
 
  357                                                                 SERVICE_NAMESPACE.
'#updateCourse',
 
  360                                                                 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a '.
 
  361                                                                 'given xml description');
 
  364                 $this->server->register(
'getObjIdByImportId',
 
  365                                                                 array(
'sid' => 
'xsd:string',
 
  366                                                                           'import_id' => 
'xsd:string'),
 
  367                                                                 array(
'obj_id' => 
'xsd:int'),
 
  369                                                                 SERVICE_NAMESPACE.
'#getCourseIdByImportId',
 
  372                                                                 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.');
 
  376                 $this->server->register(
'getRefIdsByImportId',
 
  377                                                                 array(
'sid' => 
'xsd:string',
 
  378                                                                           'import_id' => 
'xsd:string'),
 
  379                                                                 array(
'ref_ids' => 
'tns:intArray'),
 
  381                                                                 SERVICE_NAMESPACE.
'#getRefIdsByImportId',
 
  384                                                                 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.');
 
  387                 $this->server->register(
'getRefIdsByObjId',
 
  388                                                                 array(
'sid' => 
'xsd:string',
 
  389                                                                           'obj_id' => 
'xsd:string'),
 
  390                                                                 array(
'ref_ids' => 
'tns:intArray'),
 
  392                                                                 SERVICE_NAMESPACE.
'#getRefIdsByObjId',
 
  395                                                                 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.');
 
  398                 $this->server->register(
'getObjectByReference',
 
  399                                                                 array(
'sid' => 
'xsd:string',
 
  400                                                                           'reference_id' => 
'xsd:int',
 
  401                                                                           'user_id' => 
'xsd:int'),
 
  402                                                                 array(
'object_xml' => 
'xsd:string'),
 
  404                                                                 SERVICE_NAMESPACE.
'#getObjectByReference',
 
  407                                                                 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, '.
 
  408                                                                 'this methods also checks the permissions of that user on the object.');
 
  410                 $this->server->register(
'getObjectsByTitle',
 
  411                                                                 array(
'sid' => 
'xsd:string',
 
  412                                                                           'title' => 
'xsd:string',
 
  413                                                                           'user_id' => 
'xsd:int'),
 
  414                                                                 array(
'object_xml' => 
'xsd:string'),
 
  416                                                                 SERVICE_NAMESPACE.
'#getObjectsByTitle',
 
  419                                                                 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. '.
 
  420                                                                 'If a user id is given this method also checks the permissions of that user on the object.');
 
  422                 $this->server->register(
'searchObjects',
 
  423                                                                 array(
'sid' => 
'xsd:string',
 
  424                                                                           'types' => 
'tns:stringArray',
 
  425                                                                           'key' => 
'xsd:string',
 
  426                                                                           'combination' => 
'xsd:string',
 
  427                                                                           'user_id' => 
'xsd:int'),
 
  428                                                                 array(
'object_xml' => 
'xsd:string'),
 
  430                                                                 SERVICE_NAMESPACE.
'#searchObjects',
 
  433                                                                 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" '.
 
  434                                                                 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); '.
 
  435                                                                 ' If an optional user id is given, this methods also return the permissions for that user '.
 
  436                                                                 'on the found objects');
 
  438                 $this->server->register(
'getTreeChilds',
 
  439                                                                 array(
'sid' => 
'xsd:string',
 
  440                                                                           'ref_id' => 
'xsd:int',
 
  441                                                                           'types' => 
'tns:stringArray',
 
  442                                                                           'user_id' => 
'xsd:int'),
 
  443                                                                 array(
'object_xml' => 
'xsd:string'),
 
  445                                                                 SERVICE_NAMESPACE.
'#getTreeChilds',
 
  448                                                                 'ILIAS getTreeChilds(): Get all child objects of a given object.'.
 
  449                                                                 'Choose array of types to filter the output. Choose empty type array to receive all object types');
 
  451                 $this->server->register(
'getXMLTree',
 
  452                                         array(
'sid' => 
'xsd:string',
 
  453                                               'ref_id' => 
'xsd:int',
 
  454                                               'types' => 
'tns:stringArray',
 
  455                                               'user_id' => 
'xsd:int'),
 
  456                                         array(
'object_xml' => 
'xsd:string'),
 
  458                                         SERVICE_NAMESPACE.
'#getXMLTree',
 
  461                                         'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.');
 
  465                 $this->server->register(
'addObject',
 
  466                                                                 array(
'sid' => 
'xsd:string',
 
  467                                                                           'target_id' => 
'xsd:int',
 
  468                                                                           'object_xml' => 
'xsd:string'),
 
  469                                                                 array(
'ref_id' => 
'xsd:int'),
 
  471                                                                 SERVICE_NAMESPACE.
'#addObject',
 
  474                                                                 'ILIAS addObject. Create new object based on xml description under a given node '.
 
  475                                                                 '("category,course,group or folder). Return created reference id of the new object.' );
 
  477                 $this->server->register(
'updateObjects',
 
  478                                                                 array(
'sid' => 
'xsd:string',
 
  479                                                                           'object_xml' => 
'xsd:string'),
 
  480                                                                 array(
'success' => 
'xsd:boolean'),
 
  482                                                                 SERVICE_NAMESPACE.
'#updateObjects',
 
  485                                                                 'ILIAS updateObjects. Update object data (title,description,owner)');
 
  487                 $this->server->register(
'addReference',
 
  488                                                                 array(
'sid' => 
'xsd:string',
 
  489                                                                           'source_id' => 
'xsd:int',
 
  490                                                                           'target_id' => 
'xsd:int'),
 
  491                                                                 array(
'ref_id' => 
'xsd:int'),
 
  493                                                                 SERVICE_NAMESPACE.
'#addReference',
 
  496                                                                 'ILIAS addReference. Create new link of given object to new object. Return the new reference id');
 
  498                 $this->server->register(
'deleteObject',
 
  499                                                                 array(
'sid' => 
'xsd:string',
 
  500                                                                           'reference_id' => 
'xsd:int'),
 
  501                                                                 array(
'success' => 
'xsd:boolean'),
 
  503                                                                 SERVICE_NAMESPACE.
'#deleteObject',
 
  506                                                                 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ');
 
  509                 $this->server->register(
'removeFromSystemByImportId',
 
  510                                                                 array(
'sid' => 
'xsd:string',
 
  511                                                                           'import_id' => 
'xsd:string'),
 
  512                                                                 array(
'success' => 
'xsd:boolean'),
 
  514                                                                 SERVICE_NAMESPACE.
'#removeFromSystemByImportId',
 
  517                                                                 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the '.
 
  518                                                                 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use '.
 
  519                                                                 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.');
 
  521                 $this->server->register(
'addUserRoleEntry',
 
  522                                                                 array(
'sid' => 
'xsd:string',
 
  523                                                                           'user_id' => 
'xsd:int',
 
  524                                                                           'role_id' => 
'xsd:int'),
 
  525                                                                 array(
'success' => 
'xsd:boolean'),
 
  527                                                                 SERVICE_NAMESPACE.
'#addUserRoleEntry',
 
  530                                                                 'ILIAS addUserRoleEntry. Assign user to role.');
 
  532                 $this->server->register(
'deleteUserRoleEntry',
 
  533                                                                 array(
'sid' => 
'xsd:string',
 
  534                                                                           'user_id' => 
'xsd:int',
 
  535                                                                           'role_id' => 
'xsd:int'),
 
  536                                                                 array(
'success' => 
'xsd:boolean'),
 
  538                                                                 SERVICE_NAMESPACE.
'#deleteUserRoleEntry',
 
  541                                                                 'ILIAS deleteUserRoleEntry. Deassign user from role.');
 
  545                 $this->server->wsdl->addComplexType(
'ilOperation',
 
  550                                                                                         array(
'ops_id' => array(
'name' => 
'ops_id',
 
  551                                                                                                                                         'type' => 
'xsd:int'),
 
  552                                                                                                   'operation' => array(
'name' => 
'operation',
 
  553                                                                                                                                            'type' => 
'xsd:string'),
 
  554                                                                                                   'description' => array(
'name' => 
'description',
 
  555                                                                                                                                                  'type' => 
'xsd:string')));
 
  557                 $this->server->wsdl->addComplexType(
'ilOperations',
 
  563                                                                                         array(array(
'ref' => 
'SOAP-ENC:arrayType',
 
  564                                                                                                                 'wsdl:arrayType' => 
'tns:ilOperation[]')),
 
  566                 $this->server->register(
'getOperations',
 
  567                                                                 array(
'sid' => 
'xsd:string'),
 
  568                                                                 array(
'operations' => 
'tns:ilOperations'),
 
  570                                                                 SERVICE_NAMESPACE.
'#getOperations',
 
  573                                                                 'ILIAS getOperations(): get complete set of RBAC operations.');
 
  575                 $this->server->register(
'revokePermissions',
 
  576                                                                 array(
'sid' => 
'xsd:string',
 
  577                                                                           'ref_id' => 
'xsd:int',
 
  578                                                                           'role_id' => 
'xsd:int'),
 
  579                                                                 array(
'success' => 
'xsd:boolean'),
 
  581                                                                 SERVICE_NAMESPACE.
'#revokePermissions',
 
  584                                                                 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.');
 
  586                 $this->server->wsdl->addComplexType(
'ilOperationIds',
 
  592                                                                                         array(array(
'ref' => 
'SOAP-ENC:arrayType',
 
  593                                                                                                                 'wsdl:arrayType' => 
'xsd:int[]')),
 
  596                 $this->server->register(
'grantPermissions',
 
  597                                                                 array(
'sid' => 
'xsd:string',
 
  598                                                                           'ref_id' => 
'xsd:int',
 
  599                                                                           'role_id' => 
'xsd:int',
 
  600                                                                           'operations' => 
'tns:intArray'),
 
  601                                                                 array(
'success' => 
'xsd:boolean'),
 
  603                                                                 SERVICE_NAMESPACE.
'#grantPermissions',
 
  606                                                                 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. '.
 
  607                                                                 '(Substitutes existing permission settings)');
 
  609                 $this->server->register(
'getLocalRoles',
 
  610                                                                 array(
'sid' => 
'xsd:string',
 
  611                                                                           'ref_id' => 
'xsd:int'),
 
  612                                                                 array(
'role_xml' => 
'xsd:string'),
 
  614                                                                 SERVICE_NAMESPACE.
'#getLocalRoles',
 
  617                                                                 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.');
 
  619                 $this->server->register(
'getUserRoles',
 
  620                                                                 array(
'sid' => 
'xsd:string',
 
  621                                                                           'user_id' => 
'xsd:int'),
 
  622                                                                 array(
'role_xml' => 
'xsd:string'),
 
  624                                                                 SERVICE_NAMESPACE.
'#getLocalRoles',
 
  627                                                                 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ');
 
  629                 $this->server->register(
'addRole',
 
  630                                                                 array(
'sid' => 
'xsd:string',
 
  631                                                                           'target_id' => 
'xsd:int',
 
  632                                                                           'obj_xml' => 
'xsd:string'),
 
  633                                                                 array(
'role_ids' => 
'tns:intArray'),
 
  635                                                                 SERVICE_NAMESPACE.
'#addRole',
 
  638                                                                 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
 
  639                                                                 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.');
 
  641                 $this->server->register(
'deleteRole',
 
  642                                                                 array(
'sid' => 
'xsd:string',
 
  643                                                                           'role_id' => 
'xsd:int'),
 
  644                                                                 array(
'success' => 
'xsd:boolean'),
 
  646                                                                 SERVICE_NAMESPACE.
'#deleteRole',
 
  649                                                                 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user');
 
  651                 $this->server->register(
'addRoleFromTemplate',
 
  652                                                                 array(
'sid' => 
'xsd:string',
 
  653                                                                           'target_id' => 
'xsd:int',
 
  654                                                                           'obj_xml' => 
'xsd:string',
 
  655                                                                           'role_template_id' => 
'xsd:int'),
 
  656                                                                 array(
'role_ids' => 
'tns:intArray'),
 
  658                                                                 SERVICE_NAMESPACE.
'#addRole',
 
  661                                                                 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
 
  662                                                                 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. '.
 
  663                                                                 'In addition to addRole the template permissions will be copied from the given role template');
 
  665                 $this->server->register(
'getObjectTreeOperations',
 
  666                                                                 array(
'sid' => 
'xsd:string',
 
  667                                                                           'ref_id' => 
'xsd:int',
 
  668                                                                           'user_id' => 
'xsd:int'),
 
  669                                                                 array(
'operations' => 
'tns:ilOperations'),
 
  671                                                                 SERVICE_NAMESPACE.
'#getPermissionsForObject',
 
  674                                                                 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of '.
 
  675                                                                 'an object for a specific user. Returns array of granted operations or empty array');
 
  677                 $this->server->register(
'addGroup',
 
  678                                                                 array(
'sid' => 
'xsd:string',
 
  679                                                                           'target_id' => 
'xsd:int',
 
  680                                                                           'group_xml' => 
'xsd:string'),
 
  681                                                                 array(
'ref_id' => 
'xsd:int'),
 
  683                                                                 SERVICE_NAMESPACE.
'#addGroup',
 
  686                                                                 'ILIAS addGroup(): Add grop according to valid group XML '.
 
  687                                                                 '@See ilias_group_0_1.dtd');
 
  689                 $this->server->register(
'groupExists',
 
  690                                                                 array(
'sid' => 
'xsd:string',
 
  691                                                                           'title' => 
'xsd:string'),
 
  692                                                                 array(
'exists' => 
'xsd:boolean'),
 
  694                                                                 SERVICE_NAMESPACE.
'#groupExists',
 
  697                                                                 'ILIAS addGroup(): Check if group with given name exists. ');
 
  701                 $this->server->register(
'getGroup',
 
  702                                                                 array(
'sid' => 
'xsd:string',
 
  703                                                                           'ref_id' => 
'xsd:int'),
 
  704                                                                 array(
'group_xml' => 
'xsd:string'),
 
  706                                                                 SERVICE_NAMESPACE.
'#getGroup',
 
  709                                                                 'ILIAS getGroup(): get xml description of grouip with given reference id.');
 
  712                 $this->server->register(
'assignGroupMember',
 
  713                                                                 array(
'sid' => 
'xsd:string',
 
  714                                                                           'group_id' => 
'xsd:int',
 
  715                                                                           'user_id' => 
'xsd:int',
 
  716                                                                           'type' => 
'xsd:string'),
 
  717                                                                 array(
'success' => 
'xsd:boolean'),
 
  719                                                                 SERVICE_NAMESPACE.
'#assignGroupMember',
 
  722                                                                 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"');
 
  725                 $this->server->register(
'excludeGroupMember',
 
  726                                                                 array(
'sid' => 
'xsd:string',
 
  727                                                                           'group_id' => 
'xsd:int',
 
  728                                                                           'user_id' => 
'xsd:int'),
 
  729                                                                 array(
'success' => 
'xsd:boolean'),
 
  731                                                                 SERVICE_NAMESPACE.
'#excludeGroupMember',
 
  734                                                                 'ILIAS excludeGroupMember(). Excludes an user from an existing group.');
 
  737                 $this->server->register(
'isAssignedToGroup',
 
  738                                                                 array(
'sid' => 
'xsd:string',
 
  739                                                                           'group_id' => 
'xsd:int',
 
  740                                                                           'user_id' => 
'xsd:int'),
 
  741                                                                 array(
'role' => 
'xsd:int'),
 
  743                                                                 SERVICE_NAMESPACE.
'#isAssignedToGroup',
 
  746                                                                 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. '.
 
  747                                                                 'Returns 0 => not assigned, 1 => group admin, 2 => group member');
 
  752                 $this->server->register(
'sendMail',
 
  753                                                                 array(
'sid' => 
'xsd:string',
 
  754                                                                           'rcp_to' => 
'xsd:string',
 
  755                                                                           'rcp_cc' => 
'xsd:string',
 
  756                                                                           'rcp_bcc' => 
'xsd:string',
 
  757                                                                           'sender' => 
'xsd:string',
 
  758                                                                           'subject' => 
'xsd:string',
 
  759                                                                           'message' => 
'xsd:string',
 
  760                                                                           'attachments' => 
'xsd:string'),
 
  761                                                                 array(
'status' => 
'xsd:boolean'),
 
  763                                                                 SERVICE_NAMESPACE.
'#sendMail',
 
  766                                                                 'ILIAS sendMail(): Send mime mails according to xml description. Only for internal usage '.
 
  767                                                                 'Syntax, parameters may change in future releases');
 
  769                 $this->server->register(
'ilClone',
 
  770                                                                 array(
'sid' => 
'xsd:string',
'copy_identifier' => 
'xsd:int'),
 
  771                                                                 array(
'new_ref_id' => 
'xsd:int'),
 
  773                                                                 SERVICE_NAMESPACE.
'#ilClone',
 
  776                                                                 'ILIAS ilClone(): Only for internal usage.'.
 
  777                                                                 'Syntax, parameters may change in future releases. ');
 
  779                 $this->server->register(
'handleECSTasks',
 
  780                                                                 array(
'sid' => 
'xsd:string'),
 
  781                                                                 array(
'success' => 
'xsd:boolean'),
 
  783                                                                 SERVICE_NAMESPACE.
'#handleECSTasks',
 
  786                                                                 'ILIAS handleECSTasks(): Only for internal usage.'.
 
  787                                                                 'Syntax, parameters may change in future releases. ');
 
  789                 $this->server->register(
'ilCloneDependencies',
 
  790                                                                 array(
'sid' => 
'xsd:string',
'copy_identifier' => 
'xsd:int'),
 
  791                                                                 array(
'success' => 
'xsd:boolean'),
 
  793                                                                 SERVICE_NAMESPACE.
'#ilCloneDependencies',
 
  796                                                                 'ILIAS ilCloneDependencies(): Only for internal usage.'.
 
  797                                                                 'Syntax, parameters may change in future releases. ');
 
  799                 $this->server->register(
'saveQuestionResult',
 
  800                                                                 array(
'sid' => 
'xsd:string',
 
  801                                                                           'user_id' => 
'xsd:int',
 
  802                                                                           'test_id' => 
'xsd:int',
 
  803                                                                           'question_id' => 
'xsd:int',
 
  805                                                                           'solution' => 
'tns:stringArray'),
 
  806                                                                 array(
'status' => 
'xsd:boolean'),
 
  808                                                                 SERVICE_NAMESPACE.
'#saveQuestionResult',
 
  811                                                                 'ILIAS saveQuesionResult: Typically called from an external assessment question to save the user input. DEPRECATED since ILIAS 3.9');
 
  813                 $this->server->register(
'saveQuestion',
 
  814                                                                 array(
'sid' => 
'xsd:string',
 
  815                                                                           'active_id' => 
'xsd:long',
 
  816                                                                           'question_id' => 
'xsd:long',
 
  818                                                                           'solution' => 
'tns:stringArray'),
 
  819                                                                 array(
'status' => 
'xsd:boolean'),
 
  821                                                                 SERVICE_NAMESPACE.
'#saveQuestion',
 
  824                                                                 '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.');
 
  826         $this->server->register(
'saveQuestionSolution',
 
  827                                                         array(
'sid' => 
'xsd:string',
 
  828                                                                   'active_id' => 
'xsd:long',
 
  829                                                                   'question_id' => 
'xsd:long',
 
  831                                                                   'solution' => 
'xsd:string'),
 
  832                                                         array(
'status' => 
'xsd:string'),
 
  834                                                         SERVICE_NAMESPACE.
'#saveQuestionSolution',
 
  837                                                         'ILIAS saveQuestionSolution: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test. The solution has to be an XML string which contains <values><value>VALUE</value><value>VALUE</value><points>POINTS</points>...</values> where the triplet (value,value,points) can repeat n times. The result string is either TRUE or it contains an error message.');
 
  839                 $this->server->register(
'getQuestionSolution',
 
  840                                                                 array(
'sid' => 
'xsd:string',
 
  841                                                                           'active_id' => 
'xsd:long',
 
  842                                                                           'question_id' => 
'xsd:int',
 
  843                                                                           'pass' => 
'xsd:int'),
 
  844                                                                 array(
'solution' => 
'tns:stringArray'),
 
  846                                                                 SERVICE_NAMESPACE.
'#getQuestionSolution',
 
  849                                                                 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.');
 
  851                                                         $this->server->register(
'getTestUserData',
 
  852                                                                                                         array(
'sid' => 
'xsd:string',
 
  853                                                                                                                   'active_id' => 
'xsd:long'),
 
  854                                                                                                         array(
'userdata' => 
'tns:stringArray'),
 
  856                                                                                                         SERVICE_NAMESPACE.
'#getTestUserData',
 
  859                                                                                                         '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.');
 
  861                                                         $this->server->register(
'getPositionOfQuestion',
 
  862                                                                                                         array(
'sid' => 
'xsd:string',
 
  863                                                                                                                   'active_id' => 
'xsd:long',
 
  864                                                                                                                   'question_id' => 
'xsd:int',
 
  865                                                                                                                   'pass' => 
'xsd:int'),
 
  866                                                                                                         array(
'position' => 
'xsd:int'),
 
  868                                                                                                         SERVICE_NAMESPACE.
'#getPositionOfQuestion',
 
  871                                                                                                         'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.');
 
  873                                                         $this->server->register(
'getPreviousReachedPoints',
 
  874                                                                                                         array(
'sid' => 
'xsd:string',
 
  875                                                                                                                   'active_id' => 
'xsd:long',
 
  876                                                                                                                   'question_id' => 
'xsd:int',
 
  877                                                                                                                   'pass' => 
'xsd:int'),
 
  878                                                                                                         array(
'position' => 
'tns:doubleArray'),
 
  880                                                                                                         SERVICE_NAMESPACE.
'#getPreviousReachedPoints',
 
  883                                                                                                         'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.');
 
  885                                                         $this->server->register(
'getNrOfQuestionsInPass',
 
  886                                                                                                         array(
'sid' => 
'xsd:string',
 
  887                                                                                                                   'active_id' => 
'xsd:long',
 
  888                                                                                                                   'pass' => 
'xsd:int'),
 
  889                                                                                                         array(
'count' => 
'xsd:int'),
 
  891                                                                                                         SERVICE_NAMESPACE.
'#getNrOfQuestionsInPass',
 
  894                                                                                                         'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.');
 
  896                 $this->server->register(
'getStructureObjects',
 
  897                                                                 array(
'sid' => 
'xsd:string',
 
  898                                                                           'ref_id' => 
'xsd:int'),
 
  899                                                                 array(
'xml' => 
'xsd:string'),
 
  901                                                                 SERVICE_NAMESPACE.
'#getStructureObjects',
 
  904                                                                 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)');
 
  907                 $this->server->register(
'importUsers',
 
  908                                                                 array(
'sid' => 
'xsd:string',
 
  909                                                                           'folder_id' => 
'xsd:int',
 
  910                                                                           'usr_xml' => 
'xsd:string',
 
  911                                                                           'conflict_rule' => 
'xsd:int',
 
  912                                                                           'send_account_mail' => 
'xsd:int'),
 
  913                                                                 array(
'protocol' => 
'xsd:string'),
 
  915                                                                 SERVICE_NAMESPACE.
'#importUsers',
 
  918                                                                 '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');
 
  920                 $this->server->register(
'getRoles',
 
  921                                                                 array(
'sid' => 
'xsd:string',
 
  922                                                                       'role_type' => 
'xsd:string',
 
  923                                                                       'id' => 
'xsd:string'),
 
  924                                                                 array(
'role_xml' => 
'xsd:string'),
 
  926                                                                 SERVICE_NAMESPACE.
'#getRoles',
 
  929                                                                 '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');
 
  931                 $this->server->register(
'getUsersForContainer',
 
  932                                                                 array(
'sid' => 
'xsd:string',
 
  933                                                                 'ref_id' => 
'xsd:int',
 
  934                                                                 'attach_roles' => 
'xsd:int',
 
  935                                                                     'active' => 
'xsd:int'),
 
  936                                                                 array(
'user_xml' => 
'xsd:string'),
 
  938                                                                 SERVICE_NAMESPACE.
'#getUsersForContainer',
 
  941                                                                 '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');
 
  943                 $this->server->register(
'getUsersForRole',
 
  944                                                                 array(
'sid' => 
'xsd:string',
 
  945                                                                       'role_id' => 
'xsd:int',
 
  946                                                                       'attach_roles' => 
'xsd:int',
 
  947                                                                       'active' => 
'xsd:int'),
 
  948                                                                 array(
'user_xml' => 
'xsd:string'),
 
  950                                                                 SERVICE_NAMESPACE.
'#getUsersForRole',
 
  953                                                                 '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');
 
  955                 $this->server->register(
'searchUser',
 
  956                                                                 array(
'sid' => 
'xsd:string',
 
  957                                                                       'key_fields' => 
'tns:stringArray',
 
  958                                                                       'query_operator' => 
'xsd:string',
 
  959                                                                       'key_values' => 
'tns:stringArray',
 
  960                                                                       'attach_roles' => 
'xsd:int',
 
  961                                                                       'active' => 
'xsd:int'),
 
  963                                                                 array(
'user_xml' => 
'xsd:string'),
 
  965                                                                 SERVICE_NAMESPACE.
'#searchUsers',
 
  968                                                                 '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');
 
  972                 $this->server->register(
'hasNewMail',
 
  973                                                                 array(
'sid' => 
'xsd:string'),
 
  974                                                                 array(
'status' => 
'xsd:boolean'),
 
  976                                                                 SERVICE_NAMESPACE.
'#hasNewMail',
 
  979                                                                 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.');
 
  981                 $this->server->register(
'getNIC',
 
  982                                                                 array(
'sid' => 
'xsd:string'),
 
  983                                                                 array(
'xmlresultset' => 
'xsd:string'),
 
  985                                                                 SERVICE_NAMESPACE.
'#getNIC',
 
  988                                                                 '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');
 
  990         $this->server->register(
'getExerciseXML',
 
  991                                                                 array(
'sid' => 
'xsd:string', 
"ref_id" => 
'xsd:int', 
"attachment_mode" => 
"xsd:int"),
 
  992                                                                 array(
'exercisexml' => 
'xsd:string'),
 
  994                                                                 SERVICE_NAMESPACE.
'#getExerciseXML',
 
  997                                                                 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
 
  999         $this->server->register(
'addExercise',
 
 1000                                                                 array(
'sid' => 
'xsd:string', 
"target_id" => 
'xsd:int', 
"xml" => 
"xsd:string"),
 
 1001                                                                 array(
'refid' => 
'xsd:int'),
 
 1003                                                                 SERVICE_NAMESPACE.
'#addExercise',
 
 1006                                                                 '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!');
 
 1008         $this->server->register(
'updateExercise',
 
 1009                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
 
 1010                                                                 array(
'success' => 
'xsd:boolean'),
 
 1012                                                                 SERVICE_NAMESPACE.
'#updateExercise',
 
 1015                                                                 '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.!');
 
 1017         $this->server->register(
'getFileXML',
 
 1018                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'attachment_mode' => 
'xsd:int'),
 
 1019                                                                 array(
'filexml' => 
'xsd:string'),
 
 1021                                                                 SERVICE_NAMESPACE.
'#getFileXML',
 
 1024                                                                 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)');
 
 1026         $this->server->register(
'addFile',
 
 1027                                                                 array(
'sid' => 
'xsd:string', 
'target_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
 
 1028                                                                 array(
'refid' => 
'xsd:int'),
 
 1030                                                                 SERVICE_NAMESPACE.
'#addFile',
 
 1033                                                                 '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!');
 
 1035         $this->server->register(
'updateFile',
 
 1036                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
 
 1037                                                                 array(
'success' => 
'xsd:boolean'),
 
 1039                                                                 SERVICE_NAMESPACE.
'#updateFile',
 
 1042                                                                 '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.!');
 
 1045         $this->server->register(
'getUserXML',
 
 1046                                                                 array(
'sid' => 
'xsd:string', 
'user_ids' => 
'tns:intArray', 
'attach_roles' => 
'xsd:int'),
 
 1047                                                                 array(
'xml' => 
'xsd:string'),
 
 1049                                                                 SERVICE_NAMESPACE.
'#resolveUsers',
 
 1052                                                                 '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');
 
 1056                 $this->server->register(
'getObjIdsByRefIds',
 
 1057                                                                 array(
'sid' => 
'xsd:string',
 
 1058                                                                           'ref_ids' => 
'tns:intArray'),
 
 1059                                                                 array(
'obj_ids' => 
'tns:intArray'),
 
 1061                                                                 SERVICE_NAMESPACE.
'#getRefIdsByImportId',
 
 1064                                                                 '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');
 
 1066                 $this->server->register(
'updateGroup',
 
 1067                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
 
 1068                                                                 array(
'success' => 
'xsd:boolean'),
 
 1070                                                                 SERVICE_NAMESPACE.
'#updateGroup',
 
 1073                                                                 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).');
 
 1077         $this->server->register(
'getIMSManifestXML',
 
 1078                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int'),
 
 1079                                                                 array(
'xml' => 
'xsd:string'),
 
 1081                                                                 SERVICE_NAMESPACE.
'#getIMSManifestXML',
 
 1084                                                                 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid');
 
 1086                 $this->server->register(
'hasSCORMCertificate',
 
 1087                         array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'usr_id' => 
'xsd:int'),
 
 1088                         array(
'success' => 
'xsd:boolean'),
 
 1090                         SERVICE_NAMESPACE.
'#hasSCORMCertificate',
 
 1093                         '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');
 
 1095                 $this->server->register(
'getSCORMCompletionStatus',
 
 1096                                                                 array(
'sid' => 
'xsd:string', 
'usr_id' => 
'xsd:int', 
'ref_id' => 
'xsd:int'),
 
 1097                                                                 array(
'status' => 
'xsd:string'),
 
 1099                                                                 SERVICE_NAMESPACE.
'#getSCORMCompletionStatus',
 
 1102                                                                 'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module');
 
 1104                 $this->server->register(
'copyObject',
 
 1105                                                                 array(
'sid' => 
'xsd:string', 
'xml' => 
'xsd:string'),
 
 1106                                                                 array(
'xml' => 
'xsd:int'),
 
 1108                                                                 SERVICE_NAMESPACE.
'#copyObject',
 
 1111                                                                 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.');
 
 1113                 $this->server->register(
'moveObject',
 
 1114                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'target_id' => 
'xsd:int'),
 
 1115                                                                 array(
'result' => 
'xsd:boolean'),
 
 1117                                                                 SERVICE_NAMESPACE.
'#moveObject',
 
 1120                                                                 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.');
 
 1123                 $this->server->register (
'getTestResults',
 
 1124                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'sum_only' => 
'xsd:boolean'),
 
 1125                                                                 array(
'xml' => 
'xsd:string'),
 
 1127                                                                 SERVICE_NAMESPACE.
'#getTestResults',
 
 1130                                                                 'ILIAS getTestResults(): returns XMLResultSet with  
 1131                                                                          sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points 
 1132                                                                          sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points');
 
 1135                 $this->server->register (
'getCoursesForUser',
 
 1136                                                                 array(
'sid' => 
'xsd:string', 
'parameters' => 
'xsd:string'),
 
 1137                                                                 array(
'xml' => 
'xsd:string'),
 
 1139                                                                 SERVICE_NAMESPACE.
'#getCoursesForUser',
 
 1142                                                                 '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.');
 
 1144                 $this->server->register (
'getGroupsForUser',
 
 1145                                                                 array(
'sid' => 
'xsd:string', 
'parameters' => 
'xsd:string'),
 
 1146                                                                 array(
'xml' => 
'xsd:string'),
 
 1148                                                                 SERVICE_NAMESPACE.
'#getGroupsForUser',
 
 1151                                                                 '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.');
 
 1153                 $this->server->register (
'getPathForRefId',
 
 1154                                                                 array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int'),
 
 1155                                                                 array(
'xml' => 
'xsd:string'),
 
 1157                                                                 SERVICE_NAMESPACE.
'#getPathForRefId',
 
 1160                                                                 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.');
 
 1162                 $this->server->register (
'searchRoles',
 
 1163                                                                 array(
'sid' => 
'xsd:string', 
'key' => 
'xsd:string', 
'combination' => 
'xsd:string', 
'role_type' => 
'xsd:string'),
 
 1164                                                                 array(
'xml' => 
'xsd:string'),
 
 1166                                                                 SERVICE_NAMESPACE.
'#searchRoles',
 
 1169                                                                 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.');
 
 1171                 $this->server->register (
'getInstallationInfoXML',
 
 1173                                                                 array(
'xml' => 
'xsd:string'),
 
 1175                                                                 SERVICE_NAMESPACE.
'#getInstallationInfoXML',
 
 1178                                                                 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd');
 
 1180                 $this->server->register (
'getClientInfoXML',
 
 1181                                                                 array(
'clientid' => 
'xsd:string'),
 
 1182                                                                 array(
'xml' => 
'xsd:string'),
 
 1184                                                                 SERVICE_NAMESPACE.
'#getClientInfoXML',
 
 1187                                                                 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id');
 
 1189                 $this->server->register (
'getUserIdBySid',
 
 1190                                                                 array(
'sid' => 
'xsd:string'),
 
 1191                                                                 array(
'usr_id' => 
'xsd:int'),
 
 1193                                                                 SERVICE_NAMESPACE.
'#getUserIdBySid',
 
 1196                                                                 'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid');
 
 1198                 $this->server->register(
'deleteExpiredDualOptInUserObjects',
 
 1199                                                                 array(
'sid' => 
'xsd:string',
 
 1200                                                                           'usr_id' => 
'xsd:int'),
 
 1201                                                                 array(
'status' => 
'xsd:boolean'),
 
 1203                                                                 SERVICE_NAMESPACE.
'#deleteExpiredDualOptInUserObjects',
 
 1206                                                                 'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method');