Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Merge branch 'MDL-51945-master' of git://github.com/jleyva/moodle
- Loading branch information
Showing
with
35 additions
and
0 deletions.
-
+10
−0
user/externallib.php
-
+25
−0
user/tests/externallib_test.php
|
@@ -547,6 +547,16 @@ public static function update_users($users) { |
|
|
if ($existinguser->deleted or is_mnet_remote_user($existinguser) or isguestuser($existinguser->id)) { |
|
|
continue; |
|
|
} |
|
|
// Check duplicated emails. |
|
|
if (isset($user['email']) && $user['email'] !== $existinguser->email) { |
|
|
if (!validate_email($user['email'])) { |
|
|
continue; |
|
|
} else if (empty($CFG->allowaccountssameemail) && |
|
|
$DB->record_exists('user', array('email' => $user['email'], 'mnethostid' => $CFG->mnet_localhost_id))) { |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
user_update_user($user, true, false); |
|
|
|
|
|
// Update user picture if it was specified for this user. |
|
|
|
@@ -676,6 +676,31 @@ public function test_update_users() { |
|
|
core_user_external::update_users(array($user1)); |
|
|
} |
|
|
|
|
|
/** |
|
|
* Test update_users using duplicated email. |
|
|
*/ |
|
|
public function test_update_users_duplicated_email() { |
|
|
global $DB, $CFG; |
|
|
|
|
|
$this->resetAfterTest(true); |
|
|
$this->setAdminUser(); |
|
|
|
|
|
$user1 = self::getDataGenerator()->create_user(); |
|
|
$user2 = self::getDataGenerator()->create_user(); |
|
|
$user2toupdate = array( |
|
|
'id' => $user2->id, |
|
|
'email' => $user1->email, |
|
|
); |
|
|
// E-mail duplicated not allowed. |
|
|
$CFG->allowaccountssameemail = 0; |
|
|
core_user_external::update_users(array($user2toupdate)); |
|
|
$this->assertNotEquals($user1->email, $DB->get_field('user', 'email', array('id' => $user2->id))); |
|
|
// E-mail duplicated allowed. |
|
|
$CFG->allowaccountssameemail = 1; |
|
|
core_user_external::update_users(array($user2toupdate)); |
|
|
$this->assertEquals($user1->email, $DB->get_field('user', 'email', array('id' => $user2->id))); |
|
|
} |
|
|
|
|
|
/** |
|
|
* Test add_user_private_files |
|
|
*/ |
|
|