Merge pull request #16199 from akemidx/feature/sc-28271

Adding <Last Name.First Initial> as an option for usernames
This commit is contained in:
snipe 2025-02-18 14:42:54 +00:00 committed by GitHub
commit 452185be45
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 0 deletions

View file

@ -626,6 +626,8 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
$username = str_slug(substr($first_name, 0, 1).'.'.str_slug($last_name)); $username = str_slug(substr($first_name, 0, 1).'.'.str_slug($last_name));
} elseif ($format == 'lastname_firstinitial') { } elseif ($format == 'lastname_firstinitial') {
$username = str_slug($last_name).'_'.str_slug(substr($first_name, 0, 1)); $username = str_slug($last_name).'_'.str_slug(substr($first_name, 0, 1));
} elseif ($format == 'lastname.firstinitial') {
$username = str_slug($last_name).'.'.str_slug(substr($first_name, 0, 1));
} elseif ($format == 'firstnamelastname') { } elseif ($format == 'firstnamelastname') {
$username = str_slug($first_name).str_slug($last_name); $username = str_slug($first_name).str_slug($last_name);
} elseif ($format == 'firstnamelastinitial') { } elseif ($format == 'firstnamelastinitial') {

View file

@ -127,6 +127,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)', 'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)', 'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)', 'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)', 'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)', 'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format', 'name_display_format' => 'Name Display Format',

View file

@ -198,6 +198,7 @@ Form::macro('username_format', function ($name = 'username_format', $selected =
'firstname_lastname' => trans('general.firstname_lastname_underscore_format'), 'firstname_lastname' => trans('general.firstname_lastname_underscore_format'),
'firstinitial.lastname' => trans('general.firstinitial.lastname'), 'firstinitial.lastname' => trans('general.firstinitial.lastname'),
'lastname_firstinitial' => trans('general.lastname_firstinitial'), 'lastname_firstinitial' => trans('general.lastname_firstinitial'),
'lastname.firstinitial' => trans('general.lastname_dot_firstinitial_format'),
'firstnamelastname' => trans('general.firstnamelastname'), 'firstnamelastname' => trans('general.firstnamelastname'),
'firstnamelastinitial' => trans('general.firstnamelastinitial'), 'firstnamelastinitial' => trans('general.firstnamelastinitial'),
'lastname.firstname' => trans('general.lastnamefirstname'), 'lastname.firstname' => trans('general.lastnamefirstname'),

View file

@ -72,6 +72,14 @@ class UserTest extends TestCase
$this->assertEquals($expected_username, $user['username']); $this->assertEquals($expected_username, $user['username']);
} }
public function testLastNameDotFirstInitial()
{
$fullname = "Natalia Allanovna Romanova-O'Shostakova";
$expected_username = 'allanovna-romanova-oshostakova.n';
$user = User::generateFormattedNameFromFullName($fullname, 'lastname.firstinitial');
$this->assertEquals($expected_username, $user['username']);
}
public function lastNameUnderscoreFirstInitial() public function lastNameUnderscoreFirstInitial()
{ {
$fullname = "Natalia Allanovna Romanova-O'Shostakova"; $fullname = "Natalia Allanovna Romanova-O'Shostakova";