From 6d11d0ee0e6cabefd0dc2b00907ad44f42fbf56d Mon Sep 17 00:00:00 2001 From: skodak Date: Sun, 4 Nov 2007 13:51:26 +0000 Subject: [PATCH] MDL-12020 can not bulk delete users with the same email - new username collision --- lib/moodlelib.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 74f5a1cc183..ffd91461501 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -2867,11 +2867,17 @@ function delete_user($user) { // now do a final accesslib cleanup - removes all role assingments in user context and context itself delete_context(CONTEXT_USER, $user->id); + // workaround for bulk deletes of users with the same email address + $delname = addslashes("$user->email.".time()); + while (record_exists('user', '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 = addslashes("$user->email.".time()); // Remember it just in case + $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();