Fix on user identifer generator (openid)

there was an issue with trailing dots and
user name connectors

Change-Id: I104230ee14c05c194ba4b431c1b1bf0ae487314d
This commit is contained in:
Sebastian Marcet 2017-03-15 16:27:53 -03:00
parent ccb82bcd0b
commit a018b8aa6f
3 changed files with 29 additions and 2 deletions

View File

@ -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))

View File

@ -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();

View File

@ -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');
}
}