mirror of
https://github.com/snipe/snipe-it.git
synced 2025-02-21 03:15:45 -08:00
Refactored method to generate usernames from full names
This commit is contained in:
parent
0d11e32523
commit
62edf14893
|
@ -330,44 +330,24 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo
|
||||||
|
|
||||||
public static function generateFormattedNameFromFullName($format = 'filastname', $users_name)
|
public static function generateFormattedNameFromFullName($format = 'filastname', $users_name)
|
||||||
{
|
{
|
||||||
$name = explode(" ", $users_name);
|
list($first_name, $last_name) = explode(" ", $users_name, 2);
|
||||||
$name = str_replace("'", '', $name);
|
|
||||||
$first_name = $name[0];
|
|
||||||
$email_last_name = '';
|
|
||||||
$email_prefix = $first_name;
|
|
||||||
|
|
||||||
// If there is no last name given
|
// Assume filastname by default
|
||||||
if (!array_key_exists(1, $name)) {
|
$username = str_slug(substr($first_name, 0, 1).$last_name);
|
||||||
$last_name='';
|
|
||||||
$email_last_name = $last_name;
|
if ($format=='firstname.lastname') {
|
||||||
$user_username = $first_name;
|
$username = str_slug($first_name).'.'.str_slug($last_name);
|
||||||
|
|
||||||
// There is a last name given
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$last_name = str_replace($first_name . ' ', '', $users_name);
|
|
||||||
|
|
||||||
if ($format=='filastname') {
|
|
||||||
$email_last_name.=str_replace(' ', '', $last_name);
|
|
||||||
$email_prefix = $first_name[0].$email_last_name;
|
|
||||||
|
|
||||||
} elseif ($format=='firstname.lastname') {
|
|
||||||
$email_last_name.=str_replace(' ', '', $last_name);
|
|
||||||
$email_prefix = $first_name.'.'.$email_last_name;
|
|
||||||
|
|
||||||
} elseif ($format=='firstname') {
|
|
||||||
$email_last_name.=str_replace(' ', '', $last_name);
|
|
||||||
$email_prefix = $first_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
} elseif ($format=='firstname_lastname') {
|
||||||
|
$username = str_slug($first_name).'_'.str_slug($last_name);
|
||||||
|
|
||||||
|
} elseif ($format=='firstname') {
|
||||||
|
$username = str_slug($first_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_username = $email_prefix;
|
|
||||||
$user['first_name'] = $first_name;
|
$user['first_name'] = $first_name;
|
||||||
$user['last_name'] = $last_name;
|
$user['last_name'] = $last_name;
|
||||||
$user['username'] = strtolower($user_username);
|
$user['username'] = strtolower($username);
|
||||||
|
|
||||||
return $user;
|
return $user;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,4 +27,49 @@ class UserTest extends BaseTest
|
||||||
$this->tester->seeRecord('users', $values);
|
$this->tester->seeRecord('users', $values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testFirstNameSplit()
|
||||||
|
{
|
||||||
|
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
|
||||||
|
$expected_firstname = 'Natalia';
|
||||||
|
$expected_lastname = "Allanovna Romanova-O'Shostakova";
|
||||||
|
$user = User::generateFormattedNameFromFullName('firstname', $fullname);
|
||||||
|
$this->assertEquals($expected_firstname, $user['first_name']);
|
||||||
|
$this->assertEquals($expected_lastname, $user['last_name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFirstName()
|
||||||
|
{
|
||||||
|
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
|
||||||
|
$expected_username = 'natalia';
|
||||||
|
$user = User::generateFormattedNameFromFullName('firstname', $fullname);
|
||||||
|
$this->assertEquals($expected_username, $user['username']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFirstNameDotLastName()
|
||||||
|
{
|
||||||
|
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
|
||||||
|
$expected_username = 'natalia.allanovna-romanova-oshostakova';
|
||||||
|
$user = User::generateFormattedNameFromFullName('firstname.lastname', $fullname);
|
||||||
|
$this->assertEquals($expected_username, $user['username']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testFirstInitialLastName()
|
||||||
|
{
|
||||||
|
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
|
||||||
|
$expected_username = 'nallanovna-romanova-oshostakova';
|
||||||
|
$user = User::generateFormattedNameFromFullName('filastname', $fullname);
|
||||||
|
$this->assertEquals($expected_username, $user['username']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFirstInitialUnderscoreLastName()
|
||||||
|
{
|
||||||
|
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
|
||||||
|
$expected_username = 'natalia_allanovna-romanova-oshostakova';
|
||||||
|
$user = User::generateFormattedNameFromFullName('firstname_lastname', $fullname);
|
||||||
|
$this->assertEquals($expected_username, $user['username']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue