]> git.mjollnir.org Git - moodle.git/commitdiff
web service MDL-12886 create lib.php in user folder (need create_user and update_user)
authorjerome <jerome>
Wed, 28 Jan 2009 07:46:55 +0000 (07:46 +0000)
committerjerome <jerome>
Wed, 28 Jan 2009 07:46:55 +0000 (07:46 +0000)
user/external.php
user/lib.php [moved from user/api.php with 67% similarity]

index b9ecce287a97412ef26dcd527a91c2a01cdd6cb3..a1b6e573a5769cdf92fff721f5d4bffb4f896eaa 100644 (file)
@@ -7,7 +7,7 @@
  * @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
@@ -51,10 +51,7 @@ final class user_external extends moodle_external {
      * @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');
     }
 
     /**
@@ -68,13 +65,22 @@ final class user_external extends moodle_external {
      * @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');
+        }    
     }
 
     /**
@@ -119,7 +125,10 @@ final class user_external extends moodle_external {
             $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);
     }
 
 }
similarity index 67%
rename from user/api.php
rename to user/lib.php
index 6e902be94aa5d77fa8709d16fcb2abe3ec7baf6f..189e7b3279e61fc195e447ec5ae7ba924eff61e6 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Created on 01/12/2008
  *
- * user core api
+ * user core functions
  *
  * @author Jerome Mouneyrac
  */
@@ -10,7 +10,7 @@
 /**
  * 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)
@@ -136,67 +136,7 @@ final class user_api {
         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