• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

webservice/soap/classes/class.ilNusoapUserAdministrationAdapter.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00021         +-----------------------------------------------------------------------------+
00022 */
00023 
00024 
00034 include_once './webservice/soap/lib/nusoap.php';
00035 include_once './webservice/soap/include/inc.soap_functions.php';
00036 
00037 class ilNusoapUserAdministrationAdapter
00038 {
00039         /*
00040          * @var object Nusoap-Server
00041          */
00042         var $server = null;
00043 
00044     
00045     function ilNusoapUserAdministrationAdapter($a_use_wsdl = true)
00046     {
00047                 define('SERVICE_NAME','ILIAS Soap Webservice');
00048                 define('SERVICE_NAMESPACE','urn:ilUserAdministration');
00049                 define('SERVICE_STYLE','rpc');
00050                 define('SERVICE_USE','encoded');
00051 
00052                 $this->server =& new soap_server();
00053 
00054                 if($a_use_wsdl)
00055                 {
00056                         $this->__enableWSDL();
00057                 }
00058 
00059                 $this->__registerMethods();
00060 
00061 
00062     }
00063 
00064         function start()
00065         {
00066                 global $HTTP_RAW_POST_DATA;
00067 
00068                 $this->server->service($HTTP_RAW_POST_DATA);
00069                 exit();
00070         }
00071 
00072         // PRIVATE
00073         function __enableWSDL()
00074         {
00075                 $this->server->configureWSDL(SERVICE_NAME,SERVICE_NAMESPACE);
00076 
00077                 return true;
00078         }
00079 
00080 
00081         function __registerMethods()
00082         {
00083 
00084                 // Add useful complex types. E.g. array("a","b") or array(1,2)
00085                 $this->server->wsdl->addComplexType('intArray',
00086                                                                                         'complexType',
00087                                                                                         'array',
00088                                                                                         '',
00089                                                                                         'SOAP-ENC:Array',
00090                                                                                         array(),
00091                                                                                         array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:int[]')),
00092                                                                                         'xsd:int');
00093 
00094 
00095                 $this->server->wsdl->addComplexType('stringArray',
00096                                                                                         'complexType',
00097                                                                                         'array',
00098                                                                                         '',
00099                                                                                         'SOAP-ENC:Array',
00100                                                                                         array(),
00101                                                                                         array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')),
00102                                                                                         'xsd:string');
00103 
00104                 // It's not possible to register classes in nusoap
00105                 
00106                 // login()
00107                 $this->server->register('login',
00108                                                                 array('client' => 'xsd:string',
00109                                                                           'username' => 'xsd:string',
00110                                                                           'password' => 'xsd:string'),
00111                                                                 array('sid' => 'xsd:string'),
00112                                                                 SERVICE_NAMESPACE,
00113                                                                 SERVICE_NAMESPACE.'#login',
00114                                                                 SERVICE_STYLE,
00115                                                                 SERVICE_USE,
00116                                                                 'ILIAS login function');
00117 
00118                 // logout()
00119                 $this->server->register('logout',
00120                                                                 array('sid' => 'xsd:string'),
00121                                                                 array('success' => 'xsd:boolean'),
00122                                                                 SERVICE_NAMESPACE,
00123                                                                 SERVICE_NAMESPACE.'#logout',
00124                                                                 SERVICE_STYLE,
00125                                                                 SERVICE_USE,
00126                                                                 'ILIAS logout function');
00127                 // user_data definitions
00128                 $this->server->wsdl->addComplexType('ilUserData',
00129                                                                                         'complexType',
00130                                                                                         'struct',
00131                                                                                         'all',
00132                                                                                         '',
00133                                                                                         array('usr_id' => array('name' => 'usr_id','type' => 'xsd:int'),
00134                                                                                                   'login' => array('name' => 'login', 'type' => 'xsd:string'),
00135                                                                                                   'passwd' => array('name' => 'passwd', 'type' => 'xsd:string'),
00136                                                                                                   'firstname' => array('name' => 'firstname', 'type' => 'xsd:string'),
00137                                                                                                   'lastname' => array('name' => 'lastname', 'type' => 'xsd:string'),
00138                                                                                                   'title' => array('name' => 'title', 'type' => 'xsd:string'),
00139                                                                                                   'gender' => array('name' => 'gender', 'type' => 'xsd:string'),
00140                                                                                                   'email' => array('name' => 'email', 'type' => 'xsd:string'),
00141                                                                                                   'institution' => array('name' => 'institution', 'type' => 'xsd:string'),
00142                                                                                                   'street' => array('name' => 'street', 'type' => 'xsd:string'),
00143                                                                                                   'city' => array('name' => 'city', 'type' => 'xsd:string'),
00144                                                                                                   'zipcode' => array('name' => 'zipcode', 'type' => 'xsd:string'),
00145                                                                                                   'country' => array('name' => 'country', 'type' => 'xsd:string'),
00146                                                                                                   'phone_office' => array('name' => 'phone_office', 'type' => 'xsd:string'),
00147                                                                                                   'last_login' => array('name' => 'last_login', 'type' => 'xsd:string'),
00148                                                                                                   'last_update' => array('name' => 'last_update', 'type' => 'xsd:string'),
00149                                                                                                   'create_date' => array('name' => 'create_date', 'type' => 'xsd:string'),
00150                                                                                                   'hobby' => array('name' => 'hobby', 'type' => 'xsd:string'),
00151                                                                                                   'department' => array('name' => 'department', 'type' => 'xsd:string'),
00152                                                                                                   'phone_home' => array('name' => 'phone_home', 'type' => 'xsd:string'),
00153                                                                                                   'phone_mobile' => array('name' => 'phone_mobile', 'type' => 'xsd:string'),
00154                                                                                                   'fax' => array('name' => 'fax', 'type' => 'xsd:string'),
00155                                                                                                   'time_limit_owner' => array('name' => 'time_limit_owner', 'type' => 'xsd:int'),
00156                                                                                                   'time_limit_unlimited' => array('name' => 'time_limit_unlimited', 'type' => 'xsd:int'),
00157                                                                                                   'time_limit_from' => array('name' => 'time_limit_from', 'type' => 'xsd:int'),
00158                                                                                                   'time_limit_until' => array('name' => 'time_limit_until', 'type' => 'xsd:int'),
00159                                                                                                   'time_limit_message' => array('name' => 'time_limit_message', 'type' => 'xsd:int'),
00160                                                                                                   'referral_comment' => array('name' => 'referral_comment', 'type' => 'xsd:string'),
00161                                                                                                   'matriculation' => array('name' => 'matriculation', 'type' => 'xsd:string'),
00162                                                                                                   'active' => array('name' => 'active', 'type' => 'xsd:int'),
00163                                                                                                   'accepted_agreement' => array('name' => 'accepted_agreement','type' => 'xsd:boolean'),
00164                                                                                                   'approve_date' => array('name' => 'approve_date', 'type' => 'xsd:string'),
00165                                                                                                   'user_skin' => array('name' => 'user_skin', 'type' => 'xsd:string'),
00166                                                                                                   'user_style' => array('name' => 'user_style', 'type' => 'xsd:string'),
00167                                                                                                   'user_language' => array('name' => 'user_language', 'type' => 'xsd:string'),
00168                                                                                                   'import_id' => array('name' => 'import_id', 'type' => 'xsd:string')
00169                                                                                                   ));
00170 
00171                 // lookupUser()
00172                 $this->server->register('lookupUser',
00173                                                                 array('sid' => 'xsd:string',
00174                                                                           'user_name' => 'xsd:string'),
00175                                                                 array('usr_id' => 'xsd:int'),
00176                                                                 SERVICE_NAMESPACE,
00177                                                                 SERVICE_NAMESPACE.'#lookupUser',
00178                                                                 SERVICE_STYLE,
00179                                                                 SERVICE_USE,
00180                                                                 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.');
00181                 
00182                 
00183                 // getUser()
00184                 $this->server->register('getUser',
00185                                                                 array('sid' => 'xsd:string',
00186                                                                           'user_id' => 'xsd:int'),
00187                                                                 array('user_data' => 'tns:ilUserData'),
00188                                                                 SERVICE_NAMESPACE,
00189                                                                 SERVICE_NAMESPACE.'#getUser',
00190                                                                 SERVICE_STYLE,
00191                                                                 SERVICE_USE,
00192                                                                 'ILIAS getUser(): get complete set of user data.');
00193                 // updateUser()
00194                 $this->server->register('updateUser',
00195                                                                 array('sid' => 'xsd:string',
00196                                                                           'user_data' => 'tns:ilUserData'),
00197                                                                 array('success' => 'xsd:boolean'),
00198                                                                 SERVICE_NAMESPACE,
00199                                                                 SERVICE_NAMESPACE.'#updateUser',
00200                                                                 SERVICE_STYLE,
00201                                                                 SERVICE_USE,
00202                                                                 'ILIAS updateUser(). Updates all user data. '.
00203                                                                 'Use getUser(), then modify desired fields and finally start the updateUser() call.');
00204                 // Update password
00205                 $this->server->register('updatePassword',
00206                                                                 array('sid' => 'xsd:string',
00207                                                                           'user_id' => 'xsd:int',
00208                                                                           'new_password' => 'xsd:string'),
00209                                                                 array('success' => 'xsd:boolean'),
00210                                                                 SERVICE_NAMESPACE,
00211                                                                 SERVICE_NAMESPACE.'#updatePassword',
00212                                                                 SERVICE_STYLE,
00213                                                                 SERVICE_USE,
00214                                                                 'ILIAS updatePassword(). Updates password of given user. Password must be MD5 hash');
00215                                                                 
00216 
00217                 // addUser()
00218                 $this->server->register('addUser',
00219                                                                 array('sid' => 'xsd:string',
00220                                                                           'user_data' => 'tns:ilUserData',
00221                                                                           'global_role_id' => 'xsd:int'),
00222                                                                 array('user_id' => 'xsd:int'),
00223                                                                 SERVICE_NAMESPACE,
00224                                                                 SERVICE_NAMESPACE.'#addUser',
00225                                                                 SERVICE_STYLE,
00226                                                                 SERVICE_USE,
00227                                                                 'ILIAS addUser() user. Add new ILIAS user. Requires complete or subset of user_data structure');
00228 
00229                 // deleteUser()
00230                 $this->server->register('deleteUser',
00231                                                                 array('sid' => 'xsd:string',
00232                                                                           'user_id' => 'xsd:int'),
00233                                                                 array('success' => 'xsd:boolean'),
00234                                                                 SERVICE_NAMESPACE,
00235                                                                 SERVICE_NAMESPACE.'#deleteUser',
00236                                                                 SERVICE_STYLE,
00237                                                                 SERVICE_USE,
00238                                                                 'ILIAS deleteUser(). Deletes all user related data (Bookmarks, Mails ...)');
00239 
00240                 // addCourse()
00241                 $this->server->register('addCourse',
00242                                                                 array('sid' => 'xsd:string',
00243                                                                           'target_id' => 'xsd:int',
00244                                                                           'crs_xml' => 'xsd:string'),
00245                                                                 array('course_id' => 'xsd:int'),
00246                                                                 SERVICE_NAMESPACE,
00247                                                                 SERVICE_NAMESPACE.'#addCourse',
00248                                                                 SERVICE_STYLE,
00249                                                                 SERVICE_USE,
00250                                                                 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure');
00251 
00252                 // deleteCourse()
00253                 $this->server->register('deleteCourse',
00254                                                                 array('sid' => 'xsd:string',
00255                                                                           'course_id' => 'xsd:int'),
00256                                                                 array('success' => 'xsd:boolean'),
00257                                                                 SERVICE_NAMESPACE,
00258                                                                 SERVICE_NAMESPACE.'#deleteCourse',
00259                                                                 SERVICE_STYLE,
00260                                                                 SERVICE_USE,
00261                                                                 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in '.
00262                                                                 ' the ILIAS administration. ');
00263                 // assignCourseMember()
00264                 $this->server->register('assignCourseMember',
00265                                                                 array('sid' => 'xsd:string',
00266                                                                           'course_id' => 'xsd:int',
00267                                                                           'user_id' => 'xsd:int',
00268                                                                           'type' => 'xsd:string'),
00269                                                                 array('success' => 'xsd:boolean'),
00270                                                                 SERVICE_NAMESPACE,
00271                                                                 SERVICE_NAMESPACE.'#assignCourseMember',
00272                                                                 SERVICE_STYLE,
00273                                                                 SERVICE_USE,
00274                                                                 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"');
00275 
00276                 // excludeCourseMember()
00277                 $this->server->register('excludeCourseMember',
00278                                                                 array('sid' => 'xsd:string',
00279                                                                           'course_id' => 'xsd:int',
00280                                                                           'user_id' => 'xsd:int'),
00281                                                                 array('success' => 'xsd:boolean'),
00282                                                                 SERVICE_NAMESPACE,
00283                                                                 SERVICE_NAMESPACE.'#excludeCourseMember',
00284                                                                 SERVICE_STYLE,
00285                                                                 SERVICE_USE,
00286                                                                 'ILIAS excludeCourseMember(). Excludes an user from an existing course.');
00287 
00288                 // isAssignedToCourse()
00289                 $this->server->register('isAssignedToCourse',
00290                                                                 array('sid' => 'xsd:string',
00291                                                                           'course_id' => 'xsd:int',
00292                                                                           'user_id' => 'xsd:int'),
00293                                                                 array('role' => 'xsd:int'),
00294                                                                 SERVICE_NAMESPACE,
00295                                                                 SERVICE_NAMESPACE.'#isAssignedToCourse',
00296                                                                 SERVICE_STYLE,
00297                                                                 SERVICE_USE,
00298                                                                 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. '.
00299                                                                 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor');
00300                                                                 
00301                 // getCourseXML($sid,$course_id)
00302                 $this->server->register('getCourseXML',
00303                                                                 array('sid' => 'xsd:string',
00304                                                                           'course_id' => 'xsd:int'),
00305                                                                 array('xml' => 'xsd:string'),
00306                                                                 SERVICE_NAMESPACE,
00307                                                                 SERVICE_NAMESPACE.'#getCourseXML',
00308                                                                 SERVICE_STYLE,
00309                                                                 SERVICE_USE,
00310                                                                 'ILIAS getCourseXML(). Get a xml description of a specific course.');
00311 
00312                 // updateCourse($sid,$course_id,$xml)
00313                 $this->server->register('updateCourse',
00314                                                                 array('sid' => 'xsd:string',
00315                                                                           'course_id' => 'xsd:int',
00316                                                                           'xml' => 'xsd:string'),
00317                                                                 array('success' => 'xsd:boolean'),
00318                                                                 SERVICE_NAMESPACE,
00319                                                                 SERVICE_NAMESPACE.'#updateCourse',
00320                                                                 SERVICE_STYLE,
00321                                                                 SERVICE_USE,
00322                                                                 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a '.
00323                                                                 'given xml description');
00324 
00325                 // get obj_id by import id
00326                 $this->server->register('getObjIdByImportId',
00327                                                                 array('sid' => 'xsd:string',
00328                                                                           'import_id' => 'xsd:string'),
00329                                                                 array('obj_id' => 'xsd:int'),
00330                                                                 SERVICE_NAMESPACE,
00331                                                                 SERVICE_NAMESPACE.'#getCourseIdByImportId',
00332                                                                 SERVICE_STYLE,
00333                                                                 SERVICE_USE,
00334                                                                 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.');
00335 
00336 
00337                 // get ref ids by import id
00338                 $this->server->register('getRefIdsByImportId',
00339                                                                 array('sid' => 'xsd:string',
00340                                                                           'import_id' => 'xsd:string'),
00341                                                                 array('ref_ids' => 'tns:intArray'),
00342                                                                 SERVICE_NAMESPACE,
00343                                                                 SERVICE_NAMESPACE.'#getRefIdsByImportId',
00344                                                                 SERVICE_STYLE,
00345                                                                 SERVICE_USE,
00346                                                                 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.');
00347 
00348                 // get obj_id by import id
00349                 $this->server->register('getRefIdsByObjId',
00350                                                                 array('sid' => 'xsd:string',
00351                                                                           'obj_id' => 'xsd:string'),
00352                                                                 array('ref_ids' => 'tns:intArray'),
00353                                                                 SERVICE_NAMESPACE,
00354                                                                 SERVICE_NAMESPACE.'#getRefIdsByObjId',
00355                                                                 SERVICE_STYLE,
00356                                                                 SERVICE_USE,
00357                                                                 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.');
00358 
00359                 // Object administration
00360                 $this->server->register('getObjectByReference',
00361                                                                 array('sid' => 'xsd:string',
00362                                                                           'reference_id' => 'xsd:int',
00363                                                                           'user_id' => 'xsd:int'),
00364                                                                 array('object_xml' => 'xsd:string'),
00365                                                                 SERVICE_NAMESPACE,
00366                                                                 SERVICE_NAMESPACE.'#getObjectByReference',
00367                                                                 SERVICE_STYLE,
00368                                                                 SERVICE_USE,
00369                                                                 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, '.
00370                                                                 'this methods also checks the permissions of that user on the object.');
00371                                                                 
00372                 $this->server->register('getObjectsByTitle',
00373                                                                 array('sid' => 'xsd:string',
00374                                                                           'title' => 'xsd:string',
00375                                                                           'user_id' => 'xsd:int'),
00376                                                                 array('object_xml' => 'xsd:string'),
00377                                                                 SERVICE_NAMESPACE,
00378                                                                 SERVICE_NAMESPACE.'#getObjectsByTitle',
00379                                                                 SERVICE_STYLE,
00380                                                                 SERVICE_USE,
00381                                                                 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. '.
00382                                                                 'If a user id is given this method also checks the permissions of that user on the object.');
00383 
00384                 $this->server->register('searchObjects',
00385                                                                 array('sid' => 'xsd:string',
00386                                                                           'types' => 'tns:stringArray',
00387                                                                           'key' => 'xsd:string',
00388                                                                           'combination' => 'xsd:string',
00389                                                                           'user_id' => 'xsd:int'),
00390                                                                 array('object_xml' => 'xsd:string'),
00391                                                                 SERVICE_NAMESPACE,
00392                                                                 SERVICE_NAMESPACE.'#searchObjects',
00393                                                                 SERVICE_STYLE,
00394                                                                 SERVICE_USE,
00395                                                                 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" '.
00396                                                                 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); '.
00397                                                                 ' If an optional user id is given, this methods also return the permissions for that user '.
00398                                                                 'on the found objects');
00399 
00400                 $this->server->register('getTreeChilds',
00401                                                                 array('sid' => 'xsd:string',
00402                                                                           'ref_id' => 'xsd:int',
00403                                                                           'types' => 'tns:stringArray',
00404                                                                           'user_id' => 'xsd:int'),
00405                                                                 array('object_xml' => 'xsd:string'),
00406                                                                 SERVICE_NAMESPACE,
00407                                                                 SERVICE_NAMESPACE.'#getTreeChilds',
00408                                                                 SERVICE_STYLE,
00409                                                                 SERVICE_USE,
00410                                                                 'ILIAS getTreeChilds(): Get all child objects of a given object.'.
00411                                                                 'Choose array of types to filter the output. Choose empty type array to receive all object types');
00412 
00413 
00414 
00415                 $this->server->register('addObject',
00416                                                                 array('sid' => 'xsd:string',
00417                                                                           'target_id' => 'xsd:int',
00418                                                                           'object_xml' => 'xsd:string'),
00419                                                                 array('ref_id' => 'xsd:int'),
00420                                                                 SERVICE_NAMESPACE,
00421                                                                 SERVICE_NAMESPACE.'#addObject',
00422                                                                 SERVICE_STYLE,
00423                                                                 SERVICE_USE,
00424                                                                 'ILIAS addObject. Create new object based on xml description under a given node '.
00425                                                                 '("category,course,group or folder). Return created reference id of the new object.' );
00426 
00427                 $this->server->register('updateObjects',
00428                                                                 array('sid' => 'xsd:string',
00429                                                                           'object_xml' => 'xsd:string'),
00430                                                                 array('success' => 'xsd:boolean'),
00431                                                                 SERVICE_NAMESPACE,
00432                                                                 SERVICE_NAMESPACE.'#updateObjects',
00433                                                                 SERVICE_STYLE,
00434                                                                 SERVICE_USE,
00435                                                                 'ILIAS updateObjects. Update object data (title,description,owner)');
00436 
00437                 $this->server->register('addReference',
00438                                                                 array('sid' => 'xsd:string',
00439                                                                           'source_id' => 'xsd:int',
00440                                                                           'target_id' => 'xsd:int'),
00441                                                                 array('ref_id' => 'xsd:int'),
00442                                                                 SERVICE_NAMESPACE,
00443                                                                 SERVICE_NAMESPACE.'#addReference',
00444                                                                 SERVICE_STYLE,
00445                                                                 SERVICE_USE,
00446                                                                 'ILIAS addReference. Create new link of given object to new object. Return the new reference id');
00447 
00448                 $this->server->register('deleteObject',
00449                                                                 array('sid' => 'xsd:string',
00450                                                                           'reference_id' => 'xsd:int'),
00451                                                                 array('success' => 'xsd:boolean'),
00452                                                                 SERVICE_NAMESPACE,
00453                                                                 SERVICE_NAMESPACE.'#deleteObject',
00454                                                                 SERVICE_STYLE,
00455                                                                 SERVICE_USE,
00456                                                                 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ');
00457 
00458                 
00459                 $this->server->register('removeFromSystemByImportId',
00460                                                                 array('sid' => 'xsd:string',
00461                                                                           'import_id' => 'xsd:string'),
00462                                                                 array('success' => 'xsd:boolean'),
00463                                                                 SERVICE_NAMESPACE,
00464                                                                 SERVICE_NAMESPACE.'#removeFromSystemByImportId',
00465                                                                 SERVICE_STYLE,
00466                                                                 SERVICE_USE,
00467                                                                 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the '.
00468                                                                 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use '.
00469                                                                 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.');
00470 
00471                 $this->server->register('addUserRoleEntry',
00472                                                                 array('sid' => 'xsd:string',
00473                                                                           'user_id' => 'xsd:int',
00474                                                                           'role_id' => 'xsd:int'),
00475                                                                 array('success' => 'xsd:boolean'),
00476                                                                 SERVICE_NAMESPACE,
00477                                                                 SERVICE_NAMESPACE.'#addUserRoleEntry',
00478                                                                 SERVICE_STYLE,
00479                                                                 SERVICE_USE,
00480                                                                 'ILIAS addUserRoleEntry. Assign user to role.');
00481                                                                 
00482                 $this->server->register('deleteUserRoleEntry',
00483                                                                 array('sid' => 'xsd:string',
00484                                                                           'user_id' => 'xsd:int',
00485                                                                           'role_id' => 'xsd:int'),
00486                                                                 array('success' => 'xsd:boolean'),
00487                                                                 SERVICE_NAMESPACE,
00488                                                                 SERVICE_NAMESPACE.'#deleteUserRoleEntry',
00489                                                                 SERVICE_STYLE,
00490                                                                 SERVICE_USE,
00491                                                                 'ILIAS deleteUserRoleEntry. Deassign user from role.');
00492 
00493 
00494                 // Add complex type for operations e.g array(array('name' => 'read','ops_id' => 2),...)
00495                 $this->server->wsdl->addComplexType('ilOperation',
00496                                                                                         'complexType',
00497                                                                                         'struct',
00498                                                                                         'all',
00499                                                                                         '',
00500                                                                                         array('ops_id' => array('name' => 'ops_id',
00501                                                                                                                                         'type' => 'xsd:int'),
00502                                                                                                   'operation' => array('name' => 'operation',
00503                                                                                                                                            'type' => 'xsd:string'),
00504                                                                                                   'description' => array('name' => 'description',
00505                                                                                                                                                  'type' => 'xsd:string')));
00506                 // Now create an array of ilOperations
00507                 $this->server->wsdl->addComplexType('ilOperations',
00508                                                                                         'complexType',
00509                                                                                         'array',
00510                                                                                         '',
00511                                                                                         'SOAP-ENC:Array',
00512                                                                                         array(),
00513                                                                                         array(array('ref' => 'SOAP-ENC:arrayType',
00514                                                                                                                 'wsdl:arrayType' => 'tns:ilOperation[]')),
00515                                                                                         'tns:ilOperation');
00516                 $this->server->register('getOperations',
00517                                                                 array('sid' => 'xsd:string'),
00518                                                                 array('operations' => 'tns:ilOperations'),
00519                                                                 SERVICE_NAMESPACE,
00520                                                                 SERVICE_NAMESPACE.'#getOperations',
00521                                                                 SERVICE_STYLE,
00522                                                                 SERVICE_USE,
00523                                                                 'ILIAS getOperations(): get complete set of RBAC operations.');
00524 
00525                 $this->server->register('revokePermissions',
00526                                                                 array('sid' => 'xsd:string',
00527                                                                           'ref_id' => 'xsd:int',
00528                                                                           'role_id' => 'xsd:int'),
00529                                                                 array('success' => 'xsd:boolean'),
00530                                                                 SERVICE_NAMESPACE,
00531                                                                 SERVICE_NAMESPACE.'#revokePermissions',
00532                                                                 SERVICE_STYLE,
00533                                                                 SERVICE_USE,
00534                                                                 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.');
00535 
00536                 $this->server->wsdl->addComplexType('ilOperationIds',
00537                                                                                         'complexType',
00538                                                                                         'array',
00539                                                                                         '',
00540                                                                                         'SOAP-ENC:Array',
00541                                                                                         array(),
00542                                                                                         array(array('ref' => 'SOAP-ENC:arrayType',
00543                                                                                                                 'wsdl:arrayType' => 'xsd:int[]')),
00544                                                                                         'xsd:int');
00545 
00546                 $this->server->register('grantPermissions',
00547                                                                 array('sid' => 'xsd:string',
00548                                                                           'ref_id' => 'xsd:int',
00549                                                                           'role_id' => 'xsd:int',
00550                                                                           'operations' => 'tns:intArray'),
00551                                                                 array('success' => 'xsd:boolean'),
00552                                                                 SERVICE_NAMESPACE,
00553                                                                 SERVICE_NAMESPACE.'#grantPermissions',
00554                                                                 SERVICE_STYLE,
00555                                                                 SERVICE_USE,
00556                                                                 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. '.
00557                                                                 '(Substitutes existing permission settings)');
00558 
00559                 $this->server->register('getLocalRoles',
00560                                                                 array('sid' => 'xsd:string',
00561                                                                           'ref_id' => 'xsd:int'),
00562                                                                 array('role_xml' => 'xsd:string'),
00563                                                                 SERVICE_NAMESPACE,
00564                                                                 SERVICE_NAMESPACE.'#getLocalRoles',
00565                                                                 SERVICE_STYLE,
00566                                                                 SERVICE_USE,
00567                                                                 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.');
00568                                                                 
00569                 $this->server->register('getUserRoles',
00570                                                                 array('sid' => 'xsd:string',
00571                                                                           'user_id' => 'xsd:int'),
00572                                                                 array('role_xml' => 'xsd:string'),
00573                                                                 SERVICE_NAMESPACE,
00574                                                                 SERVICE_NAMESPACE.'#getLocalRoles',
00575                                                                 SERVICE_STYLE,
00576                                                                 SERVICE_USE,
00577                                                                 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ');
00578 
00579                 $this->server->register('addRole',
00580                                                                 array('sid' => 'xsd:string',
00581                                                                           'target_id' => 'xsd:int',
00582                                                                           'obj_xml' => 'xsd:string'),
00583                                                                 array('role_ids' => 'tns:intArray'),
00584                                                                 SERVICE_NAMESPACE,
00585                                                                 SERVICE_NAMESPACE.'#addRole',
00586                                                                 SERVICE_STYLE,
00587                                                                 SERVICE_USE,
00588                                                                 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
00589                                                                 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.');
00590 
00591                 $this->server->register('deleteRole',
00592                                                                 array('sid' => 'xsd:string',
00593                                                                           'role_id' => 'xsd:int'),
00594                                                                 array('success' => 'xsd:boolean'),
00595                                                                 SERVICE_NAMESPACE,
00596                                                                 SERVICE_NAMESPACE.'#deleteRole',
00597                                                                 SERVICE_STYLE,
00598                                                                 SERVICE_USE,
00599                                                                 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user');
00600 
00601                 $this->server->register('addRoleFromTemplate',
00602                                                                 array('sid' => 'xsd:string',
00603                                                                           'target_id' => 'xsd:int',
00604                                                                           'obj_xml' => 'xsd:string',
00605                                                                           'role_template_id' => 'xsd:int'),
00606                                                                 array('role_ids' => 'tns:intArray'),
00607                                                                 SERVICE_NAMESPACE,
00608                                                                 SERVICE_NAMESPACE.'#addRole',
00609                                                                 SERVICE_STYLE,
00610                                                                 SERVICE_USE,
00611                                                                 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS '.
00612                                                                 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. '.
00613                                                                 'In addition to addRole the template permissions will be copied from the given role template');
00614 
00615                 $this->server->register('getObjectTreeOperations',
00616                                                                 array('sid' => 'xsd:string',
00617                                                                           'ref_id' => 'xsd:int',
00618                                                                           'user_id' => 'xsd:int'),
00619                                                                 array('operations' => 'tns:ilOperations'),
00620                                                                 SERVICE_NAMESPACE,
00621                                                                 SERVICE_NAMESPACE.'#getPermissionsForObject',
00622                                                                 SERVICE_STYLE,
00623                                                                 SERVICE_USE,
00624                                                                 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of '.
00625                                                                 'an object for a specific user. Returns array of granted operations or empty array');
00626 
00627                 $this->server->register('addGroup',
00628                                                                 array('sid' => 'xsd:string',
00629                                                                           'target_id' => 'xsd:int',
00630                                                                           'group_xml' => 'xsd:string'),
00631                                                                 array('ref_id' => 'xsd:int'),
00632                                                                 SERVICE_NAMESPACE,
00633                                                                 SERVICE_NAMESPACE.'#addGroup',
00634                                                                 SERVICE_STYLE,
00635                                                                 SERVICE_USE,
00636                                                                 'ILIAS addGroup(): Add grop according to valid group XML '.
00637                                                                 '@See ilias_group_0_1.dtd');
00638 
00639                 $this->server->register('groupExists',
00640                                                                 array('sid' => 'xsd:string',
00641                                                                           'title' => 'xsd:string'),
00642                                                                 array('exists' => 'xsd:boolean'),
00643                                                                 SERVICE_NAMESPACE,
00644                                                                 SERVICE_NAMESPACE.'#groupExists',
00645                                                                 SERVICE_STYLE,
00646                                                                 SERVICE_USE,
00647                                                                 'ILIAS addGroup(): Check if group with given name exists. ');
00648 
00649 
00650                 // getGroup
00651                 $this->server->register('getGroup',
00652                                                                 array('sid' => 'xsd:string',
00653                                                                           'ref_id' => 'xsd:int'),
00654                                                                 array('group_xml' => 'xsd:string'),
00655                                                                 SERVICE_NAMESPACE,
00656                                                                 SERVICE_NAMESPACE.'#getGroup',
00657                                                                 SERVICE_STYLE,
00658                                                                 SERVICE_USE,
00659                                                                 'ILIAS getGroup(): get xml description of grouip with given reference id.');
00660 
00661                 // assignGroupMember()
00662                 $this->server->register('assignGroupMember',
00663                                                                 array('sid' => 'xsd:string',
00664                                                                           'group_id' => 'xsd:int',
00665                                                                           'user_id' => 'xsd:int',
00666                                                                           'type' => 'xsd:string'),
00667                                                                 array('success' => 'xsd:boolean'),
00668                                                                 SERVICE_NAMESPACE,
00669                                                                 SERVICE_NAMESPACE.'#assignGroupMember',
00670                                                                 SERVICE_STYLE,
00671                                                                 SERVICE_USE,
00672                                                                 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"');
00673 
00674                 // excludeGroupMember()
00675                 $this->server->register('excludeGroupMember',
00676                                                                 array('sid' => 'xsd:string',
00677                                                                           'group_id' => 'xsd:int',
00678                                                                           'user_id' => 'xsd:int'),
00679                                                                 array('success' => 'xsd:boolean'),
00680                                                                 SERVICE_NAMESPACE,
00681                                                                 SERVICE_NAMESPACE.'#excludeGroupMember',
00682                                                                 SERVICE_STYLE,
00683                                                                 SERVICE_USE,
00684                                                                 'ILIAS excludeGroupMember(). Excludes an user from an existing group.');
00685 
00686                 // isAssignedToGroup()
00687                 $this->server->register('isAssignedToGroup',
00688                                                                 array('sid' => 'xsd:string',
00689                                                                           'group_id' => 'xsd:int',
00690                                                                           'user_id' => 'xsd:int'),
00691                                                                 array('role' => 'xsd:int'),
00692                                                                 SERVICE_NAMESPACE,
00693                                                                 SERVICE_NAMESPACE.'#isAssignedToGroup',
00694                                                                 SERVICE_STYLE,
00695                                                                 SERVICE_USE,
00696                                                                 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. '.
00697                                                                 'Returns 0 => not assigned, 1 => group admin, 2 => group member');
00698 
00699 
00700 
00701                 // ILIAS util functions
00702                 $this->server->register('sendMail',
00703                                                                 array('sid' => 'xsd:string',
00704                                                                           'rcp_to' => 'xsd:string',
00705                                                                           'rcp_cc' => 'xsd:string',
00706                                                                           'rcp_bcc' => 'xsd:string',
00707                                                                           'sender' => 'xsd:string',
00708                                                                           'subject' => 'xsd:string',
00709                                                                           'message' => 'xsd:string',
00710                                                                           'attachments' => 'xsd:string'),
00711                                                                 array('status' => 'xsd:boolean'),
00712                                                                 SERVICE_NAMESPACE,
00713                                                                 SERVICE_NAMESPACE.'#sendMail',
00714                                                                 SERVICE_STYLE,
00715                                                                 SERVICE_USE,
00716                                                                 'ILIAS sendMail(): Send mime mails according to xml description. Only for internal usage '.
00717                                                                 'syntax, parameters may change in future releases');
00718                                                                 
00719                 $this->server->register('saveQuestionResult',
00720                                                                 array('sid' => 'xsd:string',
00721                                                                           'user_id' => 'xsd:int',
00722                                                                           'test_id' => 'xsd:int',
00723                                                                           'question_id' => 'xsd:int',
00724                                                                           'pass' => 'xsd:int',
00725                                                                           'solution' => 'tns:stringArray'),
00726                                                                 array('status' => 'xsd:boolean'),
00727                                                                 SERVICE_NAMESPACE,
00728                                                                 SERVICE_NAMESPACE.'#saveQuestionResult',
00729                                                                 SERVICE_STYLE,
00730                                                                 SERVICE_USE,
00731                                                                 'ILIAS saveQuesionResult(): Typically called from Java Applet questions. Only for internal usage '.
00732                                                                 'Sntax, parameters may change in future releases');
00733 
00734 
00735 
00736 
00737                 return true;
00738         }
00739                 
00740 }
00741 ?>

Generated on Fri Dec 13 2013 11:58:04 for ILIAS Release_3_6_x_branch .rev 46809 by  doxygen 1.7.1