Merge branch 'MDL-51945-master' of git://github.com/jleyva/moodle

This commit is contained in:
David Monllao 2017-11-02 16:54:34 +01:00
commit be713b7144
2 changed files with 35 additions and 0 deletions

View File

@ -547,6 +547,16 @@ class core_user_external extends external_api {
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.

View File

@ -676,6 +676,31 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
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
*/