* @author Jerome Mouneyrac
*/
require_once(dirname(dirname(__FILE__)) . '/lib/moodleexternal.php');
-require_once(dirname(dirname(__FILE__)) . '/user/api.php');
+require_once(dirname(dirname(__FILE__)) . '/user/lib.php');
/**
* WORK IN PROGRESS, DO NOT USE IT
* @return object user
*/
static function tmp_get_users($params) {
-
- $selectioncriteria = new stdClass();
- $selectioncriteria->search = $params['search'];
- return user_api::tmp_get_users('firstname ASC', 999999, 0, 'id, auth, confirmed, username, idnumber, firstname, lastname, email, emailstop, lang, theme, timezone, mailformat', $selectioncriteria);
+ return get_users(true, $params['search'], false, null, 'firstname ASC','', '', '', '', 'id, auth, confirmed, username, idnumber, firstname, lastname, email, emailstop, lang, theme, timezone, mailformat');
}
/**
* @return integer id of new user
*/
static function tmp_create_user($params) {
- $user = array();
- $user['username'] = $params['username'];
- $user['firstname'] = $params['firstname'];
- $user['lastname'] = $params['lastname'];
- $user['email'] = $params['email'];
- $user['password'] = $params['password'];
- return user_api::tmp_create_user($user);
+ global $USER;
+ if (has_capability('moodle/user:create', get_context_instance(CONTEXT_SYSTEM))) {
+ $user = array();
+ $user['username'] = $params['username'];
+ $user['firstname'] = $params['firstname'];
+ $user['lastname'] = $params['lastname'];
+ $user['email'] = $params['email'];
+ $user['password'] = $params['password'];
+ ///
+ /// TODO: implement a core function (look at some code into editadvanced.php)
+ ///
+ return user_lib::tmp_create_user($user);
+ }
+ else {
+ throw new moodle_exception('couldnotcreateeuser');
+ }
}
/**
$user->firstname = $params['firstname'];
}
- return user_api::tmp_update_user($user);
+ ///
+ /// TODO: implement a core function (look at some code into edit.php/editadvanced.php)
+ ///
+ return user_lib::tmp_update_user($user);
}
}
/**
* Created on 01/12/2008
*
- * user core api
+ * user core functions
*
* @author Jerome Mouneyrac
*/
/**
* DO NOT USE ANYTHING FROM THIS FILE - WORK IN PROGRESS
*/
-final class user_api {
+final class user_lib {
/**
* Returns a subset of users (DO NOT COUNT)
throw new moodle_exception('couldnotcreateuser');
}
- /**
- * Marks user deleted in internal user database and notifies the auth plugin.
- * Also unenrols user from all roles and does other cleanup.
- * @param object $user Userobject before delete (without system magic quotes)
- * @return boolean success
- */
- static function tmp_delete_user($user) {
- global $CFG, $DB;
- require_once($CFG->libdir.'/grouplib.php');
- require_once($CFG->libdir.'/gradelib.php');
-
- $DB->begin_sql();
-
- // delete all grades - backup is kept in grade_grades_history table
- if ($grades = grade_grade::fetch_all(array('userid'=>$user->id))) {
- foreach ($grades as $grade) {
- $grade->delete('userdelete');
- }
- }
-
- // remove from all groups
- $DB->delete_records('groups_members', array('userid'=>$user->id));
-
- // unenrol from all roles in all contexts
- role_unassign(0, $user->id); // this might be slow but it is really needed - modules might do some extra cleanup!
-
- // now do a final accesslib cleanup - removes all role assingments in user context and context itself
- delete_context(CONTEXT_USER, $user->id);
-
- require_once($CFG->dirroot.'/tag/lib.php');
- tag_set('user', $user->id, array());
-
- // workaround for bulk deletes of users with the same email address
- $delname = "$user->email.".time();
- while ($DB->record_exists('user', array('username'=>$delname))) { // no need to use mnethostid here
- $delname++;
- }
-
- // mark internal user record as "deleted"
- $updateuser = new object();
- $updateuser->id = $user->id;
- $updateuser->deleted = 1;
- $updateuser->username = $delname; // Remember it just in case
- $updateuser->email = ''; // Clear this field to free it up
- $updateuser->idnumber = ''; // Clear this field to free it up
- $updateuser->timemodified = time();
-
- if ($DB->update_record('user', $updateuser)) {
- $DB->commit_sql();
- // notify auth plugin - do not block the delete even when plugin fails
- $authplugin = get_auth_plugin($user->auth);
- $authplugin->user_delete($user);
-
- events_trigger('user_deleted', $user);
- return true;
-
- } else {
- $DB->rollback_sql();
- return false;
- }
- }
+
/**
* Update a user record from its id