diff --git a/app/libs/Auth/UserNameGeneratorService.php b/app/libs/Auth/UserNameGeneratorService.php index 272a419b..4e0a1dc3 100644 --- a/app/libs/Auth/UserNameGeneratorService.php +++ b/app/libs/Auth/UserNameGeneratorService.php @@ -90,11 +90,13 @@ final class UserNameGeneratorService implements IUserNameGeneratorService { $fname = self::normalizeChars(trim($member->FirstName)); $lname = self::normalizeChars(trim($member->Surname)); + $fname = preg_replace('/[^\d\w_-]+/i', IUserNameGeneratorService::USER_NAME_INVALID_CHAR_REPLACEMENT, $fname); + $lname = preg_replace('/[^\d\w_-]+/i', IUserNameGeneratorService::USER_NAME_INVALID_CHAR_REPLACEMENT, $lname); $user_name = strtolower ( - preg_replace('/[^\d\w_-]+/i', IUserNameGeneratorService::USER_NAME_INVALID_CHAR_REPLACEMENT, $fname) + trim($fname, '.') . IUserNameGeneratorService::USER_NAME_CHAR_CONNECTOR . - preg_replace('/[^\d\w_-]+/i', IUserNameGeneratorService::USER_NAME_INVALID_CHAR_REPLACEMENT, $lname) + trim($lname,'.') ); //if all characters were replaced by a connector, then is not a latin character based user name if(strlen($user_name) === substr_count($user_name, IUserNameGeneratorService::USER_NAME_CHAR_CONNECTOR)) diff --git a/database/seeds/TestSeeder.php b/database/seeds/TestSeeder.php index 16ea470d..80e53dc8 100644 --- a/database/seeds/TestSeeder.php +++ b/database/seeds/TestSeeder.php @@ -434,6 +434,28 @@ SQL; ) ); + Member::create( + array( + 'ID' => 9, + 'FirstName' => 'Ian Y.', + 'Surname' => 'Choi', + 'Email' => 'ianyrchoi@gmail.com', + 'Password' => '1qaz2wsx', + 'PasswordEncryption' => 'none', + 'Salt' => 'none', + 'Gender' => 'male', + 'Address' => 'Av. Siempre Viva 111', + 'Suburb' => 'Lanus Este', + 'State' => 'Buenos Aires', + 'City' => 'Lanus', + 'Postcode' => '1824', + 'Country' => 'AR', + 'Locale' => 'ESP', + 'Active' => 1, + 'EmailVerified' => 1, + ) + ); + DB::table('banned_ips')->delete(); DB::table('user_exceptions_trail')->delete(); DB::table('server_configuration')->delete(); diff --git a/tests/UserTest.php b/tests/UserTest.php index 21945840..693e37c5 100644 --- a/tests/UserTest.php +++ b/tests/UserTest.php @@ -32,11 +32,14 @@ class UserTest extends TestCase $member6 = Member::findOrFail(6); $member7 = Member::findOrFail(7); $member8 = Member::findOrFail(8); + $member9 = Member::findOrFail(9); $id6 = $generator->generate($member6); $this->assertTrue( $id6 == 'bharath.kumar.m.r'); $id7 = $generator->generate($member7); $this->assertTrue( $id7 == 'yuanying'); $id8 = $generator->generate($member8); $this->assertTrue( $id8 == 'sebastian.german.marcet.gomez'); + $id9 = $generator->generate($member9); + $this->assertTrue( $id9 == 'ian.y.choi'); } } \ No newline at end of file