24 require_once(
'./libs/composer/vendor/autoload.php');
    39 include_once 
'./webservice/soap/lib/nusoap.php';
    40 include_once 
'./webservice/soap/include/inc.soap_functions.php';
    41 require_once(
'./Services/WebServices/SOAP/classes/class.ilSoapHook.php');
    42 require_once(
'./Services/Init/classes/class.ilInitialisation.php');
    50         define(
'SERVICE_NAME', 
'ILIASSoapWebservice');
    51         define(
'SERVICE_NAMESPACE', 
'urn:ilUserAdministration');
    52         define(
'SERVICE_STYLE', 
'rpc');
    53         define(
'SERVICE_USE', 
'encoded');
    55         $this->server->decode_utf8 = 
false;
    56         $this->server->class = 
"ilSoapFunctions";
    62         $this->registerMethods();
    67         $postdata = file_get_contents(
"php://input");
    68         $this->server->service($postdata);
    74         $this->server->configureWSDL(SERVICE_NAME, SERVICE_NAMESPACE);
    77     private function registerMethods(): 
void    80         $this->server->wsdl->addComplexType(
    87             array(array(
'ref' => 
'SOAP-ENC:arrayType', 
'wsdl:arrayType' => 
'xsd:int[]')),
    91         $this->server->wsdl->addComplexType(
    98             array(array(
'ref' => 
'SOAP-ENC:arrayType', 
'wsdl:arrayType' => 
'xsd:string[]')),
   102         $this->server->wsdl->addComplexType(
   109             array(array(
'ref' => 
'SOAP-ENC:arrayType', 
'wsdl:arrayType' => 
'xsd:double[]')),
   116         $this->server->register(
   118             array(
'client' => 
'xsd:string',
   119                   'username' => 
'xsd:string',
   120                   'password' => 
'xsd:string'   122             array(
'sid' => 
'xsd:string'),
   124             SERVICE_NAMESPACE . 
'#login',
   127             'ILIAS login function'   131         $this->server->register(
   133             array(
'sid' => 
'xsd:string'),
   134             array(
'success' => 
'xsd:boolean'),
   136             SERVICE_NAMESPACE . 
'#logout',
   139             'ILIAS logout function'   142         $this->server->wsdl->addComplexType(
   148             array(
'usr_id' => array(
'name' => 
'usr_id', 
'type' => 
'xsd:int'),
   149                   'login' => array(
'name' => 
'login', 
'type' => 
'xsd:string'),
   150                   'passwd' => array(
'name' => 
'passwd', 
'type' => 
'xsd:string'),
   151                   'firstname' => array(
'name' => 
'firstname', 
'type' => 
'xsd:string'),
   152                   'lastname' => array(
'name' => 
'lastname', 
'type' => 
'xsd:string'),
   153                   'title' => array(
'name' => 
'title', 
'type' => 
'xsd:string'),
   154                   'gender' => array(
'name' => 
'gender', 
'type' => 
'xsd:string'),
   155                   'email' => array(
'name' => 
'email', 
'type' => 
'xsd:string'),
   156                   'second_email' => array(
'name' => 
'second_email', 
'type' => 
'xsd:string'),
   157                   'institution' => array(
'name' => 
'institution', 
'type' => 
'xsd:string'),
   158                   'street' => array(
'name' => 
'street', 
'type' => 
'xsd:string'),
   159                   'city' => array(
'name' => 
'city', 
'type' => 
'xsd:string'),
   160                   'zipcode' => array(
'name' => 
'zipcode', 
'type' => 
'xsd:string'),
   161                   'country' => array(
'name' => 
'country', 
'type' => 
'xsd:string'),
   162                   'phone_office' => array(
'name' => 
'phone_office', 
'type' => 
'xsd:string'),
   163                   'last_login' => array(
'name' => 
'last_login', 
'type' => 
'xsd:string'),
   164                   'last_update' => array(
'name' => 
'last_update', 
'type' => 
'xsd:string'),
   165                   'create_date' => array(
'name' => 
'create_date', 
'type' => 
'xsd:string'),
   166                   'hobby' => array(
'name' => 
'hobby', 
'type' => 
'xsd:string'),
   167                   'department' => array(
'name' => 
'department', 
'type' => 
'xsd:string'),
   168                   'phone_home' => array(
'name' => 
'phone_home', 
'type' => 
'xsd:string'),
   169                   'phone_mobile' => array(
'name' => 
'phone_mobile', 
'type' => 
'xsd:string'),
   170                   'fax' => array(
'name' => 
'fax', 
'type' => 
'xsd:string'),
   171                   'time_limit_owner' => array(
'name' => 
'time_limit_owner', 
'type' => 
'xsd:int'),
   172                   'time_limit_unlimited' => array(
'name' => 
'time_limit_unlimited', 
'type' => 
'xsd:int'),
   173                   'time_limit_from' => array(
'name' => 
'time_limit_from', 
'type' => 
'xsd:int'),
   174                   'time_limit_until' => array(
'name' => 
'time_limit_until', 
'type' => 
'xsd:int'),
   175                   'time_limit_message' => array(
'name' => 
'time_limit_message', 
'type' => 
'xsd:int'),
   176                   'referral_comment' => array(
'name' => 
'referral_comment', 
'type' => 
'xsd:string'),
   177                   'matriculation' => array(
'name' => 
'matriculation', 
'type' => 
'xsd:string'),
   178                   'active' => array(
'name' => 
'active', 
'type' => 
'xsd:int'),
   179                   'accepted_agreement' => array(
'name' => 
'accepted_agreement', 
'type' => 
'xsd:boolean'),
   180                   'approve_date' => array(
'name' => 
'approve_date', 
'type' => 
'xsd:string'),
   181                   'user_skin' => array(
'name' => 
'user_skin', 
'type' => 
'xsd:string'),
   182                   'user_style' => array(
'name' => 
'user_style', 
'type' => 
'xsd:string'),
   183                   'user_language' => array(
'name' => 
'user_language', 
'type' => 
'xsd:string'),
   184                   'import_id' => array(
'name' => 
'import_id', 
'type' => 
'xsd:string')
   189         $this->server->register(
   191             array(
'sid' => 
'xsd:string',
   192                   'user_name' => 
'xsd:string'   194             array(
'usr_id' => 
'xsd:int'),
   196             SERVICE_NAMESPACE . 
'#lookupUser',
   199             'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.'   204         $this->server->register(
   206             array(
'sid' => 
'xsd:string',
   207                   'target_id' => 
'xsd:int',
   208                   'crs_xml' => 
'xsd:string'   210             array(
'course_id' => 
'xsd:int'),
   212             SERVICE_NAMESPACE . 
'#addCourse',
   215             'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure'   219         $this->server->register(
   221             array(
'sid' => 
'xsd:string',
   222                   'course_id' => 
'xsd:int'   224             array(
'success' => 
'xsd:boolean'),
   226             SERVICE_NAMESPACE . 
'#deleteCourse',
   229             'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in ' .
   230             ' the ILIAS administration. '   233         $this->server->register(
   234             AsyncTaskManager::CMD_START_WORKER,
   235             array(
'sid' => 
'xsd:string'),
   236             array(
'success' => 
'xsd:boolean'),
   238             SERVICE_NAMESPACE . 
'#' . AsyncTaskManager::CMD_START_WORKER,
   241             'ILIAS ' . AsyncTaskManager::CMD_START_WORKER . 
'().'   245         $this->server->register(
   246             'assignCourseMember',
   247             array(
'sid' => 
'xsd:string',
   248                   'course_id' => 
'xsd:int',
   249                   'user_id' => 
'xsd:int',
   250                   'type' => 
'xsd:string'   252             array(
'success' => 
'xsd:boolean'),
   254             SERVICE_NAMESPACE . 
'#assignCourseMember',
   257             'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"'   261         $this->server->register(
   262             'excludeCourseMember',
   263             array(
'sid' => 
'xsd:string',
   264                   'course_id' => 
'xsd:int',
   265                   'user_id' => 
'xsd:int'   267             array(
'success' => 
'xsd:boolean'),
   269             SERVICE_NAMESPACE . 
'#excludeCourseMember',
   272             'ILIAS excludeCourseMember(). Excludes an user from an existing course.'   276         $this->server->register(
   277             'isAssignedToCourse',
   278             array(
'sid' => 
'xsd:string',
   279                   'course_id' => 
'xsd:int',
   280                   'user_id' => 
'xsd:int'   282             array(
'role' => 
'xsd:int'),
   284             SERVICE_NAMESPACE . 
'#isAssignedToCourse',
   287             'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. ' .
   288             'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor'   292         $this->server->register(
   294             array(
'sid' => 
'xsd:string',
   295                   'course_id' => 
'xsd:int'   297             array(
'xml' => 
'xsd:string'),
   299             SERVICE_NAMESPACE . 
'#getCourseXML',
   302             'ILIAS getCourseXML(). Get a xml description of a specific course.'   306         $this->server->register(
   308             array(
'sid' => 
'xsd:string',
   309                   'course_id' => 
'xsd:int',
   310                   'xml' => 
'xsd:string'   312             array(
'success' => 
'xsd:boolean'),
   314             SERVICE_NAMESPACE . 
'#updateCourse',
   317             'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a ' .
   318             'given xml description'   322         $this->server->register(
   323             'getObjIdByImportId',
   324             array(
'sid' => 
'xsd:string',
   325                   'import_id' => 
'xsd:string'   327             array(
'obj_id' => 
'xsd:int'),
   329             SERVICE_NAMESPACE . 
'#getCourseIdByImportId',
   332             'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.'   336         $this->server->register(
   337             'getRefIdsByImportId',
   338             array(
'sid' => 
'xsd:string',
   339                   'import_id' => 
'xsd:string'   341             array(
'ref_ids' => 
'tns:intArray'),
   343             SERVICE_NAMESPACE . 
'#getRefIdsByImportId',
   346             'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.'   350         $this->server->register(
   352             array(
'sid' => 
'xsd:string',
   353                   'obj_id' => 
'xsd:string'   355             array(
'ref_ids' => 
'tns:intArray'),
   357             SERVICE_NAMESPACE . 
'#getRefIdsByObjId',
   360             'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.'   364         $this->server->register(
   365             'getObjectByReference',
   366             array(
'sid' => 
'xsd:string',
   367                   'reference_id' => 
'xsd:int',
   368                   'user_id' => 
'xsd:int'   370             array(
'object_xml' => 
'xsd:string'),
   372             SERVICE_NAMESPACE . 
'#getObjectByReference',
   375             'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, ' .
   376             'this methods also checks the permissions of that user on the object.'   379         $this->server->register(
   381             array(
'sid' => 
'xsd:string',
   382                   'title' => 
'xsd:string',
   383                   'user_id' => 
'xsd:int'   385             array(
'object_xml' => 
'xsd:string'),
   387             SERVICE_NAMESPACE . 
'#getObjectsByTitle',
   390             'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. ' .
   391             'If a user id is given this method also checks the permissions of that user on the object.'   394         $this->server->register(
   396             array(
'sid' => 
'xsd:string',
   397                   'types' => 
'tns:stringArray',
   398                   'key' => 
'xsd:string',
   399                   'combination' => 
'xsd:string',
   400                   'user_id' => 
'xsd:int'   402             array(
'object_xml' => 
'xsd:string'),
   404             SERVICE_NAMESPACE . 
'#searchObjects',
   407             'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" ' .
   408             'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); ' .
   409             ' If an optional user id is given, this methods also return the permissions for that user ' .
   410             'on the found objects'   413         $this->server->register(
   415             array(
'sid' => 
'xsd:string',
   416                   'ref_id' => 
'xsd:int',
   417                   'types' => 
'tns:stringArray',
   418                   'user_id' => 
'xsd:int'   420             array(
'object_xml' => 
'xsd:string'),
   422             SERVICE_NAMESPACE . 
'#getTreeChilds',
   425             'ILIAS getTreeChilds(): Get all child objects of a given object.' .
   426             'Choose array of types to filter the output. Choose empty type array to receive all object types'   429         $this->server->register(
   431             array(
'sid' => 
'xsd:string',
   432                   'ref_id' => 
'xsd:int',
   433                   'types' => 
'tns:stringArray',
   434                   'user_id' => 
'xsd:int'   436             array(
'object_xml' => 
'xsd:string'),
   438             SERVICE_NAMESPACE . 
'#getXMLTree',
   441             'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.'   444         $this->server->register(
   446             array(
'sid' => 
'xsd:string',
   447                   'target_id' => 
'xsd:int',
   448                   'object_xml' => 
'xsd:string'   450             array(
'ref_id' => 
'xsd:int'),
   452             SERVICE_NAMESPACE . 
'#addObject',
   455             'ILIAS addObject. Create new object based on xml description under a given node ' .
   456             '("category,course,group or folder). Return created reference id of the new object.'   459         $this->server->register(
   461             array(
'sid' => 
'xsd:string',
   462                   'object_xml' => 
'xsd:string'   464             array(
'success' => 
'xsd:boolean'),
   466             SERVICE_NAMESPACE . 
'#updateObjects',
   469             'ILIAS updateObjects. Update object data (title,description,owner)'   472         $this->server->register(
   474             array(
'sid' => 
'xsd:string',
   475                   'source_id' => 
'xsd:int',
   476                   'target_id' => 
'xsd:int'   478             array(
'ref_id' => 
'xsd:int'),
   480             SERVICE_NAMESPACE . 
'#addReference',
   483             'ILIAS addReference. Create new link of given object to new object. Return the new reference id'   486         $this->server->register(
   488             array(
'sid' => 
'xsd:string',
   489                   'reference_id' => 
'xsd:int'   491             array(
'success' => 
'xsd:boolean'),
   493             SERVICE_NAMESPACE . 
'#deleteObject',
   496             'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted '   499         $this->server->register(
   500             'removeFromSystemByImportId',
   501             array(
'sid' => 
'xsd:string',
   502                   'import_id' => 
'xsd:string'   504             array(
'success' => 
'xsd:boolean'),
   506             SERVICE_NAMESPACE . 
'#removeFromSystemByImportId',
   509             'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the ' .
   510             'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use ' .
   511             'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.'   514         $this->server->register(
   516             array(
'sid' => 
'xsd:string',
   517                   'user_id' => 
'xsd:int',
   518                   'role_id' => 
'xsd:int'   520             array(
'success' => 
'xsd:boolean'),
   522             SERVICE_NAMESPACE . 
'#addUserRoleEntry',
   525             'ILIAS addUserRoleEntry. Assign user to role.'   528         $this->server->register(
   529             'deleteUserRoleEntry',
   530             array(
'sid' => 
'xsd:string',
   531                   'user_id' => 
'xsd:int',
   532                   'role_id' => 
'xsd:int'   534             array(
'success' => 
'xsd:boolean'),
   536             SERVICE_NAMESPACE . 
'#deleteUserRoleEntry',
   539             'ILIAS deleteUserRoleEntry. Deassign user from role.'   543         $this->server->wsdl->addComplexType(
   549             array(
'ops_id' => array(
'name' => 
'ops_id',
   552                   'operation' => array(
'name' => 
'operation',
   553                                        'type' => 
'xsd:string'   555                   'description' => array(
'name' => 
'description',
   556                                          'type' => 
'xsd:string'   561         $this->server->wsdl->addComplexType(
   568             array(array(
'ref' => 
'SOAP-ENC:arrayType',
   569                         'wsdl:arrayType' => 
'tns:ilOperation[]'   574         $this->server->register(
   576             array(
'sid' => 
'xsd:string'),
   577             array(
'operations' => 
'tns:ilOperations'),
   579             SERVICE_NAMESPACE . 
'#getOperations',
   582             'ILIAS getOperations(): get complete set of RBAC operations.'   585         $this->server->register(
   587             array(
'sid' => 
'xsd:string',
   588                   'ref_id' => 
'xsd:int',
   589                   'role_id' => 
'xsd:int'   591             array(
'success' => 
'xsd:boolean'),
   593             SERVICE_NAMESPACE . 
'#revokePermissions',
   596             'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.'   599         $this->server->wsdl->addComplexType(
   606             array(array(
'ref' => 
'SOAP-ENC:arrayType',
   607                         'wsdl:arrayType' => 
'xsd:int[]'   613         $this->server->register(
   615             array(
'sid' => 
'xsd:string',
   616                   'ref_id' => 
'xsd:int',
   617                   'role_id' => 
'xsd:int',
   618                   'operations' => 
'tns:intArray'   620             array(
'success' => 
'xsd:boolean'),
   622             SERVICE_NAMESPACE . 
'#grantPermissions',
   625             'ILIAS grantPermissions(): Grant permissions for a specific role on an object. ' .
   626             '(Substitutes existing permission settings)'   629         $this->server->register(
   631             array(
'sid' => 
'xsd:string',
   632                   'ref_id' => 
'xsd:int'   634             array(
'role_xml' => 
'xsd:string'),
   636             SERVICE_NAMESPACE . 
'#getLocalRoles',
   639             'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.'   642         $this->server->register(
   644             array(
'sid' => 
'xsd:string',
   645                   'user_id' => 
'xsd:int'   647             array(
'role_xml' => 
'xsd:string'),
   649             SERVICE_NAMESPACE . 
'#getLocalRoles',
   652             'ILIAS getUserRoles(): Get all local roles assigned to an specific user. '   655         $this->server->register(
   657             array(
'sid' => 
'xsd:string',
   658                   'target_id' => 
'xsd:int',
   659                   'obj_xml' => 
'xsd:string'   661             array(
'role_ids' => 
'tns:intArray'),
   663             SERVICE_NAMESPACE . 
'#addRole',
   666             'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
   667             'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.'   670         $this->server->register(
   672             array(
'sid' => 
'xsd:string',
   673                   'role_id' => 
'xsd:int'   675             array(
'success' => 
'xsd:boolean'),
   677             SERVICE_NAMESPACE . 
'#deleteRole',
   680             'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user'   683         $this->server->register(
   684             'addRoleFromTemplate',
   685             array(
'sid' => 
'xsd:string',
   686                   'target_id' => 
'xsd:int',
   687                   'obj_xml' => 
'xsd:string',
   688                   'role_template_id' => 
'xsd:int'   690             array(
'role_ids' => 
'tns:intArray'),
   692             SERVICE_NAMESPACE . 
'#addRole',
   695             'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
   696             'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. ' .
   697             'In addition to addRole the template permissions will be copied from the given role template'   700         $this->server->register(
   701             'getObjectTreeOperations',
   702             array(
'sid' => 
'xsd:string',
   703                   'ref_id' => 
'xsd:int',
   704                   'user_id' => 
'xsd:int'   706             array(
'operations' => 
'tns:ilOperations'),
   708             SERVICE_NAMESPACE . 
'#getPermissionsForObject',
   711             'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of ' .
   712             'an object for a specific user. Returns array of granted operations or empty array'   715         $this->server->register(
   717             array(
'sid' => 
'xsd:string',
   718                   'target_id' => 
'xsd:int',
   719                   'group_xml' => 
'xsd:string'   721             array(
'ref_id' => 
'xsd:int'),
   723             SERVICE_NAMESPACE . 
'#addGroup',
   726             'ILIAS addGroup(): Add grop according to valid group XML ' .
   727             '@See ilias_group_0_1.dtd'   730         $this->server->register(
   732             array(
'sid' => 
'xsd:string',
   733                   'title' => 
'xsd:string'   735             array(
'exists' => 
'xsd:boolean'),
   737             SERVICE_NAMESPACE . 
'#groupExists',
   740             'ILIAS addGroup(): Check if group with given name exists. '   744         $this->server->register(
   746             array(
'sid' => 
'xsd:string',
   747                   'ref_id' => 
'xsd:int'   749             array(
'group_xml' => 
'xsd:string'),
   751             SERVICE_NAMESPACE . 
'#getGroup',
   754             'ILIAS getGroup(): get xml description of grouip with given reference id.'   758         $this->server->register(
   760             array(
'sid' => 
'xsd:string',
   761                   'group_id' => 
'xsd:int',
   762                   'user_id' => 
'xsd:int',
   763                   'type' => 
'xsd:string'   765             array(
'success' => 
'xsd:boolean'),
   767             SERVICE_NAMESPACE . 
'#assignGroupMember',
   770             'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"'   774         $this->server->register(
   775             'excludeGroupMember',
   776             array(
'sid' => 
'xsd:string',
   777                   'group_id' => 
'xsd:int',
   778                   'user_id' => 
'xsd:int'   780             array(
'success' => 
'xsd:boolean'),
   782             SERVICE_NAMESPACE . 
'#excludeGroupMember',
   785             'ILIAS excludeGroupMember(). Excludes an user from an existing group.'   789         $this->server->register(
   791             array(
'sid' => 
'xsd:string',
   792                   'group_id' => 
'xsd:int',
   793                   'user_id' => 
'xsd:int'   795             array(
'role' => 
'xsd:int'),
   797             SERVICE_NAMESPACE . 
'#isAssignedToGroup',
   800             'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. ' .
   801             'Returns 0 => not assigned, 1 => group admin, 2 => group member'   806         $this->server->register(
   808             array(
'sid' => 
'xsd:string', 
'copy_identifier' => 
'xsd:int'),
   809             array(
'new_ref_id' => 
'xsd:int'),
   811             SERVICE_NAMESPACE . 
'#ilClone',
   814             'ILIAS ilClone(): Only for internal usage.' .
   815             'Syntax, parameters may change in future releases. '   818         $this->server->register(
   819             'ilCloneDependencies',
   820             array(
'sid' => 
'xsd:string', 
'copy_identifier' => 
'xsd:int'),
   821             array(
'success' => 
'xsd:boolean'),
   823             SERVICE_NAMESPACE . 
'#ilCloneDependencies',
   826             'ILIAS ilCloneDependencies(): Only for internal usage.' .
   827             'Syntax, parameters may change in future releases. '   831         $this->server->register(
   833             array(
'sid' => 
'xsd:string',
   834                   'active_id' => 
'xsd:long',
   835                   'question_id' => 
'xsd:long',
   837                   'solution' => 
'tns:stringArray'   839             array(
'status' => 
'xsd:boolean'),
   841             SERVICE_NAMESPACE . 
'#saveQuestion',
   844             '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.'   847         $this->server->register(
   848             'saveQuestionSolution',
   849             array(
'sid' => 
'xsd:string',
   850                   'active_id' => 
'xsd:long',
   851                   'question_id' => 
'xsd:long',
   853                   'solution' => 
'xsd:string'   855             array(
'status' => 
'xsd:string'),
   857             SERVICE_NAMESPACE . 
'#saveQuestionSolution',
   860             'ILIAS saveQuestionSolution: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test. The solution has to be an XML string which contains <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.'   863         $this->server->register(
   864             'getQuestionSolution',
   865             array(
'sid' => 
'xsd:string',
   866                   'active_id' => 
'xsd:long',
   867                   'question_id' => 
'xsd:int',
   870             array(
'solution' => 
'tns:stringArray'),
   872             SERVICE_NAMESPACE . 
'#getQuestionSolution',
   875             'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.'   878         $this->server->register(
   880             array(
'sid' => 
'xsd:string',
   881                   'active_id' => 
'xsd:long'   883             array(
'userdata' => 
'tns:stringArray'),
   885             SERVICE_NAMESPACE . 
'#getTestUserData',
   888             '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.'   891         $this->server->register(
   892             'getPositionOfQuestion',
   893             array(
'sid' => 
'xsd:string',
   894                   'active_id' => 
'xsd:long',
   895                   'question_id' => 
'xsd:int',
   898             array(
'position' => 
'xsd:int'),
   900             SERVICE_NAMESPACE . 
'#getPositionOfQuestion',
   903             'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.'   906         $this->server->register(
   907             'getPreviousReachedPoints',
   908             array(
'sid' => 
'xsd:string',
   909                   'active_id' => 
'xsd:long',
   910                   'question_id' => 
'xsd:int',
   913             array(
'position' => 
'tns:doubleArray'),
   915             SERVICE_NAMESPACE . 
'#getPreviousReachedPoints',
   918             'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.'   921         $this->server->register(
   922             'getNrOfQuestionsInPass',
   923             array(
'sid' => 
'xsd:string',
   924                   'active_id' => 
'xsd:long',
   927             array(
'count' => 
'xsd:int'),
   929             SERVICE_NAMESPACE . 
'#getNrOfQuestionsInPass',
   932             'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.'   935         $this->server->register(
   936             'getStructureObjects',
   937             array(
'sid' => 
'xsd:string',
   938                   'ref_id' => 
'xsd:int'   940             array(
'xml' => 
'xsd:string'),
   942             SERVICE_NAMESPACE . 
'#getStructureObjects',
   945             'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)'   949         $this->server->register(
   951             array(
'sid' => 
'xsd:string',
   952                   'folder_id' => 
'xsd:int',
   953                   'usr_xml' => 
'xsd:string',
   954                   'conflict_rule' => 
'xsd:int',
   955                   'send_account_mail' => 
'xsd:int'   957             array(
'protocol' => 
'xsd:string'),
   959             SERVICE_NAMESPACE . 
'#importUsers',
   962             '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'   965         $this->server->register(
   967             array(
'sid' => 
'xsd:string',
   968                   'role_type' => 
'xsd:string',
   971             array(
'role_xml' => 
'xsd:string'),
   973             SERVICE_NAMESPACE . 
'#getRoles',
   976             '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'   979         $this->server->register(
   980             'getUsersForContainer',
   981             array(
'sid' => 
'xsd:string',
   982                   'ref_id' => 
'xsd:int',
   983                   'attach_roles' => 
'xsd:int',
   984                   'active' => 
'xsd:int'   986             array(
'user_xml' => 
'xsd:string'),
   988             SERVICE_NAMESPACE . 
'#getUsersForContainer',
   991             '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'   994         $this->server->register(
   996             array(
'sid' => 
'xsd:string',
   997                   'role_id' => 
'xsd:int',
   998                   'attach_roles' => 
'xsd:int',
   999                   'active' => 
'xsd:int'  1001             array(
'user_xml' => 
'xsd:string'),
  1003             SERVICE_NAMESPACE . 
'#getUsersForRole',
  1006             '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'  1009         $this->server->register(
  1011             array(
'sid' => 
'xsd:string',
  1012                   'key_fields' => 
'tns:stringArray',
  1013                   'query_operator' => 
'xsd:string',
  1014                   'key_values' => 
'tns:stringArray',
  1015                   'attach_roles' => 
'xsd:int',
  1016                   'active' => 
'xsd:int'  1018             array(
'user_xml' => 
'xsd:string'),
  1020             SERVICE_NAMESPACE . 
'#searchUsers',
  1023             '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'  1028         $this->server->register(
  1030             array(
'sid' => 
'xsd:string'),
  1031             array(
'status' => 
'xsd:boolean'),
  1033             SERVICE_NAMESPACE . 
'#hasNewMail',
  1036             'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.'  1039         $this->server->register(
  1041             array(
'sid' => 
'xsd:string', 
"ref_id" => 
'xsd:int', 
"attachment_mode" => 
"xsd:int"),
  1042             array(
'exercisexml' => 
'xsd:string'),
  1044             SERVICE_NAMESPACE . 
'#getExerciseXML',
  1047             'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)'  1050         $this->server->register(
  1052             array(
'sid' => 
'xsd:string', 
"target_id" => 
'xsd:int', 
"xml" => 
"xsd:string"),
  1053             array(
'refid' => 
'xsd:int'),
  1055             SERVICE_NAMESPACE . 
'#addExercise',
  1058             '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!'  1061         $this->server->register(
  1063             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
  1064             array(
'success' => 
'xsd:boolean'),
  1066             SERVICE_NAMESPACE . 
'#updateExercise',
  1069             '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.!'  1072         $this->server->register(
  1074             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'attachment_mode' => 
'xsd:int'),
  1075             array(
'filexml' => 
'xsd:string'),
  1077             SERVICE_NAMESPACE . 
'#getFileXML',
  1080             'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)'  1083         $this->server->register(
  1085             array(
'sid' => 
'xsd:string', 
'target_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
  1086             array(
'refid' => 
'xsd:int'),
  1088             SERVICE_NAMESPACE . 
'#addFile',
  1091             '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!'  1094         $this->server->register(
  1096             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
  1097             array(
'success' => 
'xsd:boolean'),
  1099             SERVICE_NAMESPACE . 
'#updateFile',
  1102             '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.!'  1105         $this->server->register(
  1107             array(
'sid' => 
'xsd:string', 
'user_ids' => 
'tns:intArray', 
'attach_roles' => 
'xsd:int'),
  1108             array(
'xml' => 
'xsd:string'),
  1110             SERVICE_NAMESPACE . 
'#resolveUsers',
  1113             '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'  1117         $this->server->register(
  1118             'getObjIdsByRefIds',
  1119             array(
'sid' => 
'xsd:string',
  1120                   'ref_ids' => 
'tns:intArray'  1122             array(
'obj_ids' => 
'tns:intArray'),
  1124             SERVICE_NAMESPACE . 
'#getRefIdsByImportId',
  1127             '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'  1130         $this->server->register(
  1132             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
  1133             array(
'success' => 
'xsd:boolean'),
  1135             SERVICE_NAMESPACE . 
'#updateGroup',
  1138             'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).'  1141         $this->server->register(
  1142             'getIMSManifestXML',
  1143             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int'),
  1144             array(
'xml' => 
'xsd:string'),
  1146             SERVICE_NAMESPACE . 
'#getIMSManifestXML',
  1149             'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid'  1152         $this->server->register(
  1153             'hasSCORMCertificate',
  1154             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'usr_id' => 
'xsd:int'),
  1155             array(
'success' => 
'xsd:boolean'),
  1157             SERVICE_NAMESPACE . 
'#hasSCORMCertificate',
  1160             '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'  1163         $this->server->register(
  1164             'getSCORMCompletionStatus',
  1165             array(
'sid' => 
'xsd:string', 
'usr_id' => 
'xsd:int', 
'ref_id' => 
'xsd:int'),
  1166             array(
'status' => 
'xsd:string'),
  1168             SERVICE_NAMESPACE . 
'#getSCORMCompletionStatus',
  1171             'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module'  1174         $this->server->register(
  1176             array(
'sid' => 
'xsd:string', 
'xml' => 
'xsd:string'),
  1177             array(
'xml' => 
'xsd:int'),
  1179             SERVICE_NAMESPACE . 
'#copyObject',
  1182             'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.'  1185         $this->server->register(
  1187             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'target_id' => 
'xsd:int'),
  1188             array(
'result' => 
'xsd:boolean'),
  1190             SERVICE_NAMESPACE . 
'#moveObject',
  1193             'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.'  1196         $this->server->register(
  1198             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'sum_only' => 
'xsd:boolean'),
  1199             array(
'xml' => 
'xsd:string'),
  1201             SERVICE_NAMESPACE . 
'#getTestResults',
  1204             'ILIAS getTestResults(): returns XMLResultSet with   1205                                                                          sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points  1206                                                                          sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points'  1209         $this->server->register(
  1210             'removeTestResults',
  1212                 'sid' => 
'xsd:string',
  1213                 'ref_id' => 
'xsd:int',
  1214                 'user_ids' => 
'tns:intArray'  1216             array(
'success' => 
'xsd:boolean'),
  1218             SERVICE_NAMESPACE . 
'#removeTestResults',
  1221             'ILIAS removeTestResults(): remove test results for the chosen users'  1224         $this->server->register(
  1225             'getCoursesForUser',
  1226             array(
'sid' => 
'xsd:string', 
'parameters' => 
'xsd:string'),
  1227             array(
'xml' => 
'xsd:string'),
  1229             SERVICE_NAMESPACE . 
'#getCoursesForUser',
  1232             '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.'  1235         $this->server->register(
  1237             array(
'sid' => 
'xsd:string', 
'parameters' => 
'xsd:string'),
  1238             array(
'xml' => 
'xsd:string'),
  1240             SERVICE_NAMESPACE . 
'#getGroupsForUser',
  1243             '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.'  1246         $this->server->register(
  1248             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int'),
  1249             array(
'xml' => 
'xsd:string'),
  1251             SERVICE_NAMESPACE . 
'#getPathForRefId',
  1254             'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.'  1257         $this->server->register(
  1259             array(
'sid' => 
'xsd:string',
  1260                   'key' => 
'xsd:string',
  1261                   'combination' => 
'xsd:string',
  1262                   'role_type' => 
'xsd:string'  1264             array(
'xml' => 
'xsd:string'),
  1266             SERVICE_NAMESPACE . 
'#searchRoles',
  1269             'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.'  1272         $this->server->register(
  1273             'getInstallationInfoXML',
  1275             array(
'xml' => 
'xsd:string'),
  1277             SERVICE_NAMESPACE . 
'#getInstallationInfoXML',
  1280             'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd'  1283         $this->server->register(
  1285             array(
'clientid' => 
'xsd:string'),
  1286             array(
'xml' => 
'xsd:string'),
  1288             SERVICE_NAMESPACE . 
'#getClientInfoXML',
  1291             'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id'  1294         $this->server->register(
  1295             'getSkillCompletionDateForTriggerRefId',
  1296             array(
'sid' => 
'xsd:string',
  1297                   'user_id' => 
'xsd:string',
  1298                   'ref_id' => 
'xsd:string'  1300             array(
'dates' => 
'xsd:string'),
  1302             SERVICE_NAMESPACE . 
'#getSkillCompletionDateForTriggerRefId',
  1305             'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.'  1308         $this->server->register(
  1309             'checkSkillUserCertificateForTriggerRefId',
  1310             array(
'sid' => 
'xsd:string',
  1311                   'user_id' => 
'xsd:string',
  1312                   'ref_id' => 
'xsd:string'  1314             array(
'have_certificates' => 
'xsd:string'),
  1316             SERVICE_NAMESPACE . 
'#checkSkillUserCertificateForTriggerRefId',
  1319             'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.'  1322         $this->server->register(
  1323             'getSkillTriggerOfAllCertificates',
  1324             array(
'sid' => 
'xsd:string',
  1325                   'user_id' => 
'xsd:string'  1327             array(
'certificate_triggers' => 
'xsd:string'),
  1329             SERVICE_NAMESPACE . 
'#getSkillTriggerOfAllCertificates',
  1332             'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.'  1335         $this->server->register(
  1337             array(
'sid' => 
'xsd:string'),
  1338             array(
'usr_id' => 
'xsd:int'),
  1340             SERVICE_NAMESPACE . 
'#getUserIdBySid',
  1343             'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid'  1346         $this->server->register(
  1347             'deleteExpiredDualOptInUserObjects',
  1348             array(
'sid' => 
'xsd:string',
  1349                   'usr_id' => 
'xsd:int'  1351             array(
'status' => 
'xsd:boolean'),
  1353             SERVICE_NAMESPACE . 
'#deleteExpiredDualOptInUserObjects',
  1356             'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method'  1359         $this->server->register(
  1361             array(
'sid' => 
'xsd:string', 
"ref_id" => 
'xsd:int'),
  1362             array(
'weblinkxml' => 
'xsd:string'),
  1364             SERVICE_NAMESPACE . 
'#readWebLink',
  1367             'ILIAS readWebLink(): returns xml description of a weblink container.'  1370         $this->server->register(
  1372             array(
'sid' => 
'xsd:string', 
"target_id" => 
'xsd:int', 
"xml" => 
"xsd:string"),
  1373             array(
'refid' => 
'xsd:int'),
  1375             SERVICE_NAMESPACE . 
'#createWebLink',
  1378             'ILIAS createWebLink(): create web link container, put it into target (ref_id) and update weblink container from xml (see ilias_weblink_4_0.dtd for details). Obj_id must not be set!'  1381         $this->server->register(
  1383             array(
'sid' => 
'xsd:string', 
'ref_id' => 
'xsd:int', 
'xml' => 
'xsd:string'),
  1384             array(
'success' => 
'xsd:boolean'),
  1386             SERVICE_NAMESPACE . 
'#updateWebLink',
  1389             'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).'  1393         $this->server->register(
  1394             'getLearningProgressChanges',
  1395             array(
'sid' => 
'xsd:string',
  1396                   'timestamp' => 
'xsd:string',
  1397                   'include_ref_ids' => 
'xsd:boolean',
  1398                   'type_filter' => 
'tns:stringArray'  1400             array(
'lp_data' => 
'xsd:string'),
  1402             SERVICE_NAMESPACE . 
'#getLearningProgressChanges',
  1405             'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.'  1409         $this->server->register(
  1412                 'sid' => 
'xsd:string',
  1413                 'ref_ids' => 
'tns:intArray',
  1414                 'usr_ids' => 
'tns:intArray',
  1415                 'type_filter' => 
'tns:stringArray',
  1416                 'progress_filter' => 
'tns:intArray'  1418             array(
'status' => 
'xsd:boolean'),
  1420             SERVICE_NAMESPACE . 
'#deleteProgress',
  1423             'Delete user progress data of objects. '  1426         $this->server->register(
  1429                 'sid' => 
'xsd:string',
  1430                 'ref_id' => 
'xsd:int',
  1431                 'progress_filter' => 
'tns:intArray'  1433             array(
'user_results' => 
'xsd:string'),
  1435             SERVICE_NAMESPACE . 
'#getProgressInfo',
  1438             'Get object learning progress information'  1441         $this->server->register(
  1442             'exportDataCollectionContent',
  1444                 'sid' => 
'xsd:string',
  1445                 'ref_id' => 
'xsd:int',
  1446                 'table_id' => 
'xsd:int',
  1447                 'format' => 
'xsd:string',
  1448                 'filepath' => 
'xsd:string'  1450             array(
'export_path' => 
'xsd:string'),
  1452             SERVICE_NAMESPACE . 
'#exportDataCollectionTableContent',
  1455             'Generate DataCollectionContent Export'  1458         $this->server->register(
  1459             'processBackgroundTask',
  1461                 'sid' => 
'xsd:string',
  1462                 'task_id' => 
'xsd:int'  1464             array(
'status' => 
'xsd:boolean'),
  1466             SERVICE_NAMESPACE . 
'#processBackgroundTask',
  1469             'Process task in background'  1489         foreach (
$f as $function) {
  1490             $this->server->register(
  1491                 $function->getName(),
  1492                 $function->getInputParams(),
  1493                 $function->getOutputParams(),
  1495                 SERVICE_NAMESPACE . 
'#orgu',
  1498                 $function->getDocumentation()
  1504         if (isset(
$_GET[
'client_id'])) {
  1522         $component_factory = $DIC[
'component.factory'];
  1523         $soapHook = 
new ilSoapHook($component_factory);
  1524         foreach ($soapHook->getWsdlTypes() as $type) {
  1525             $this->server->wsdl->addComplexType(
  1527                 $type->getTypeClass(),
  1528                 $type->getPhpType(),
  1529                 $type->getCompositor(),
  1530                 $type->getRestrictionBase(),
  1531                 $type->getElements(),
  1532                 $type->getAttributes(),
  1533                 $type->getArrayType()
  1536         foreach ($soapHook->getSoapMethods() as $method) {
  1537             $this->server->register(
  1539                 $method->getInputParams(),
  1540                 $method->getOutputParams(),
  1541                 $method->getServiceNamespace(),
  1542                 $method->getServiceNamespace() . 
'#' . $method->getName(),
  1543                 $method->getServiceStyle(),
  1544                 $method->getServiceUse(),
  1545                 $method->getDocumentation()
 
Class AddUserIdToPositionInOrgUnit. 
 
handleSoapPlugins()
Register any methods and types of SOAP plugins to the SOAP server. 
 
Class EmployeePositionId. 
 
Class AddUserIdToPositionInOrgUnit. 
 
const CONTEXT_SOAP_NO_AUTH
 
__construct(bool $a_use_wsdl=true)
 
static initILIAS()
ilias initialisation 
 
Class UserIdsOfPositionAndOrgUnit. 
 
Class SuperiorPositionId. 
 
static init(string $a_type)
Init context by type. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...