Skip to content

Commit

Permalink
MDL-12886 converting user/external.php to externallib.php - work in p…
Browse files Browse the repository at this point in the history
…rogress
  • Loading branch information
skodak committed Sep 15, 2009
1 parent df5f916 commit ef22c1b
Show file tree
Hide file tree
Showing 6 changed files with 187 additions and 389 deletions.
2 changes: 0 additions & 2 deletions lang/en_utf8/error.php
Expand Up @@ -454,7 +454,6 @@
$string['usernotaddederror'] = 'User not added - error';
$string['usernotaddedregistered'] = 'User not added - already registered';
$string['usernotavailable'] = 'The details of this user are not available to you';
$string['usernotcreated'] = 'The user could not be created';
$string['usernotdeletederror'] = 'User not deleted - error';
$string['usernotdeletedmissing'] = 'User not deleted - could not find the username';
$string['usernotdeletedoff'] = 'User not deleted - deleting not allowed';
Expand All @@ -477,7 +476,6 @@
$string['wrongusernamepassword'] = 'Wrong user/password';
$string['wrongzipfilename'] = 'Wrong ZIP file name';
$string['wscouldnotcreateecoursenopermission'] = 'WS - Could not create course - No permission';
$string['wscouldnotcreateeuserindb'] = 'WS - Could not create a user';
$string['wscouldnotcreateeusernopermission'] = 'WS - Could not create a user - No permission';
$string['wscouldnotdeletenoexistinguser'] = 'WS - Could not delete a user - User doesn\'t exist';
$string['wscouldnotdeleteusernopermission'] = 'WS - Could not delete a user - No permission';
Expand Down
37 changes: 37 additions & 0 deletions lib/db/services.php
Expand Up @@ -25,6 +25,9 @@
*/

$functions = array(

// === group related functions ===

'moodle_group_create_groups' => array(
'classname' => 'moodle_group_external',
'methodname' => 'create_groups',
Expand Down Expand Up @@ -73,4 +76,38 @@
'returns' => null, //TODO
),

// === user related functions ===

'moodle_user_create_users' => array(
'classname' => 'moodle_user_external',
'methodname' => 'create_users',
'classpath' => 'user/externallib.php',
'params' => null, //TODO
'returns' => null, //TODO
),

'moodle_user_get_users' => array(
'classname' => 'moodle_user_external',
'methodname' => 'get_users',
'classpath' => 'user/externallib.php',
'params' => null, //TODO
'returns' => null, //TODO
),

'moodle_user_delete_users' => array(
'classname' => 'moodle_user_external',
'methodname' => 'delete_users',
'classpath' => 'user/externallib.php',
'params' => null, //TODO
'returns' => null, //TODO
),

'moodle_user_update_users' => array(
'classname' => 'moodle_user_external',
'methodname' => 'update_users',
'classpath' => 'user/externallib.php',
'params' => null, //TODO
'returns' => null, //TODO
),

);
116 changes: 0 additions & 116 deletions lib/moodleexternal.php

This file was deleted.

105 changes: 5 additions & 100 deletions user/external.php
Expand Up @@ -22,6 +22,10 @@
* @copyright Copyright (c) 1999 onwards Martin Dougiamas http://dougiamas.com
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL License
*/


die('this file is being migrated to exxternallib.php right now...');

require_once(dirname(dirname(__FILE__)) . '/lib/moodleexternal.php');
require_once(dirname(dirname(__FILE__)) . '/user/lib.php');

Expand All @@ -38,60 +42,6 @@ final class user_external extends moodle_external {
function __construct () {
$this->descriptions = array();

$user = new object();
$user->password = PARAM_ALPHANUMEXT;
$user->auth = PARAM_ALPHANUMEXT;
$user->confirmed = PARAM_NUMBER;
$user->username = PARAM_ALPHANUMEXT;
$user->idnumber = PARAM_ALPHANUMEXT;
$user->firstname = PARAM_ALPHANUMEXT;
$user->lastname = PARAM_ALPHANUMEXT;
$user->email = PARAM_NOTAGS;
$user->emailstop = PARAM_NUMBER;
$user->lang = PARAM_ALPHA;
$user->theme = PARAM_ALPHANUM;
$user->timezone = PARAM_ALPHANUMEXT;
$user->mailformat = PARAM_ALPHA;
$user->description = PARAM_TEXT;
$user->city = PARAM_ALPHANUMEXT;
$user->country = PARAM_ALPHANUMEXT;
$params = new object();
$params->users = array($user);
$return = new object();
$return->userids = array(PARAM_NUMBER);
$this->descriptions['create_users'] = array( 'params' => $params,
'optionalinformation' => 'Username, password, firstname, and username are the only mandatory',
'return' => $return,
'service' => 'user',
'requiredlogin' => 0);

$user = new object();
$user->id = PARAM_NUMBER;
$user->auth = PARAM_ALPHANUMEXT;
$user->confirmed = PARAM_NUMBER;
$user->username = PARAM_ALPHANUMEXT;
$user->idnumber = PARAM_ALPHANUMEXT;
$user->firstname = PARAM_ALPHANUMEXT;
$user->lastname = PARAM_ALPHANUMEXT;
$user->email = PARAM_NOTAGS;
$user->emailstop = PARAM_NUMBER;
$user->lang = PARAM_ALPHA;
$user->theme = PARAM_ALPHANUM;
$user->timezone = PARAM_ALPHANUMEXT;
$user->mailformat = PARAM_ALPHA;
$user->description = PARAM_TEXT;
$user->city = PARAM_ALPHANUMEXT;
$user->country = PARAM_ALPHANUMEXT;
$params = new object();
$params->search = PARAM_ALPHANUM;
$return = new object();
$return->users = array($user);
$this->descriptions['get_users'] = array( 'params' => $params,
'optionalparams' => 'All params are not mandatory',
'return' => $return,
'service' => 'user',
'requiredlogin' => 0);

$params = new object();
$params->usernames = array(PARAM_ALPHANUMEXT);
$return = new object();
Expand All @@ -112,49 +62,6 @@ function __construct () {
'requiredlogin' => 0);
}

/**
* Retrieve all user
* @param object|struct $params - need to be define as struct for XMLRPC
* @return object $return
*/
public function get_users($params) {
global $USER;

$this->clean_function_params('get_users', $params);

if (has_capability('moodle/user:viewdetails', get_context_instance(CONTEXT_SYSTEM))) {
return get_users(true, $params->search, false, null, 'firstname ASC','', '', '', 1000, 'id, auth, confirmed, username, idnumber, firstname, lastname, email, emailstop, lang, theme, timezone, mailformat, city, description, country');
}
else {
throw new moodle_exception('wscouldnotvieweusernopermission');
}
}

/**
* Create multiple users
* @param object|struct $params - need to be define as struct for XMLRPC
* @return object $return
*/
public function create_users($params) {
global $USER;
if (has_capability('moodle/user:create', get_context_instance(CONTEXT_SYSTEM))) {
$userids = array();
$this->clean_function_params('create_users', $params);
foreach ($params->users as $user) {
try {
$userids[$user->username] = create_user($user);
}
catch (dml_write_exception $e) {
throw new moodle_exception('wscouldnotcreateeuserindb');
}
}
return $userids;
}
else {
throw new moodle_exception('wscouldnotcreateeusernopermission');
}
}

/**
* Delete multiple users
* @global object $DB
Expand Down Expand Up @@ -208,9 +115,7 @@ public function update_users($params) {
}
$user->username = $paramuser->newusername;
try {
if( !update_user($user)) {
$updatesuccessfull = false;
}
$DB->update_record('user', $user);
}
catch (dml_write_exception $e) {
throw new moodle_exception('wscouldnotupdateuserindb');
Expand Down

0 comments on commit ef22c1b

Please sign in to comment.