mirror of
https://github.com/moodle/moodle.git
synced 2025-05-04 15:27:34 +02:00
MDL-35854 fix username generator
This eliminates infinite loop and also fixes potentially invalid email derived from usernames created from unicode first/last name.
This commit is contained in:
parent
2105f57590
commit
fe67134eaa
@ -157,9 +157,11 @@ EOD;
|
||||
}
|
||||
|
||||
if (!isset($record['username'])) {
|
||||
$record['username'] = textlib::strtolower($record['firstname']).textlib::strtolower($record['lastname']);
|
||||
$record['username'] = 'username'.$i;
|
||||
$j = 2;
|
||||
while ($DB->record_exists('user', array('username'=>$record['username'], 'mnethostid'=>$record['mnethostid']))) {
|
||||
$record['username'] = $record['username'].'_'.$i;
|
||||
$record['username'] = 'username'.$i.'_'.$j;
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,11 @@ class core_phpunit_generator_testcase extends advanced_testcase {
|
||||
$count = $DB->count_records('user');
|
||||
$user = $generator->create_user();
|
||||
$this->assertEquals($count+1, $DB->count_records('user'));
|
||||
$this->assertSame($user->username, clean_param($user->username, PARAM_USERNAME));
|
||||
$this->assertSame($user->email, clean_param($user->email, PARAM_EMAIL));
|
||||
$user = $generator->create_user(array('firstname'=>'Žluťoučký', 'lastname'=>'Koníček'));
|
||||
$this->assertSame($user->username, clean_param($user->username, PARAM_USERNAME));
|
||||
$this->assertSame($user->email, clean_param($user->email, PARAM_EMAIL));
|
||||
|
||||
$count = $DB->count_records('course_categories');
|
||||
$category = $generator->create_category();
|
||||
|
Loading…
x
Reference in New Issue
Block a user