diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index ed148cf81..c4073efb7 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -394,6 +394,19 @@ return [ 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', 'no_groups' => 'No groups have been created yet. Visit Admin Settings > Permission Groups to add one.', 'text' => 'Text', + 'firstname_lastname_format' => 'First Name Last Name (jane.smith)', + 'first_name_format' => 'First Name (jane)', + 'filastname_format' => 'First Initial Last Name (jsmith)', + 'lastnamefirstinitial_format' => 'Last Name First Initial (smithj)', + 'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith)', + 'firstinitial.lastname' => 'First Initial Last Name (j.smith)', + 'lastname_firstinitial' => 'Last Name First Initial (smith_j)', + 'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j)', + 'firstnamelastname' => 'First Name Last Name (janesmith)', + 'firstnamelastinitial' => 'First Name Last Initial (janes)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane)', + + 'logo_labels' => [ 'acceptance_pdf_logo' => 'PDF Logo', diff --git a/resources/macros/macros.php b/resources/macros/macros.php index debf3241c..aa55ba8fd 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -189,7 +189,7 @@ Form::macro('barcode_types', function ($name = 'barcode_type', $selected = null, return $select; }); -Form::macro('username_format', function ($name = 'username_format', $selected = null, $class = null) { +Form::macro('email_format', function ($name = 'email_format', $selected = null, $class = null) { $formats = [ 'firstname.lastname' => trans('general.firstname_lastname_format'), 'firstname' => trans('general.first_name_format'), @@ -214,6 +214,31 @@ Form::macro('username_format', function ($name = 'username_format', $selected = return $select; }); +Form::macro('username_format', function ($name = 'username_format', $selected = null, $class = null) { + $formats = [ + 'firstname.lastname' => trans('admin/settings/general.firstname_lastname_format'), + 'firstname' => trans('admin/settings/general.first_name_format'), + 'filastname' => trans('admin/settings/general.filastname_format'), + 'lastnamefirstinitial' => trans('admin/settings/general.lastnamefirstinitial_format'), + 'firstname_lastname' => trans('admin/settings/general.firstname_lastname_underscore_format'), + 'firstinitial.lastname' => trans('admin/settings/general.firstinitial.lastname'), + 'lastname_firstinitial' => trans('admin/settings/general.lastname_firstinitial'), + 'lastname.firstinitial' => trans('admin/settings/general.lastname_dot_firstinitial_format'), + 'firstnamelastname' => trans('admin/settings/general.firstnamelastname'), + 'firstnamelastinitial' => trans('admin/settings/general.firstnamelastinitial'), + 'lastname.firstname' => trans('admin/settings/general.lastnamefirstname'), + ]; + + $select = ''; + + return $select; +}); + Form::macro('two_factor_options', function ($name = 'two_factor_enabled', $selected = null, $class = null) { $formats = [ '' => trans('admin/settings/general.two_factor_disabled'), diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index 1b123d351..b9bf9263d 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -93,7 +93,7 @@
- {!! Form::username_format('email_format', old('email_format', $setting->email_format), 'select2') !!} + {!! Form::email_format('email_format', old('email_format', $setting->email_format), 'select2') !!} {!! $errors->first('email_format', '') !!}
diff --git a/tests/Unit/UserTest.php b/tests/Unit/UserTest.php index d47a49934..9554085c0 100644 --- a/tests/Unit/UserTest.php +++ b/tests/Unit/UserTest.php @@ -24,6 +24,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstNameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'natalia@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstNameDotLastName() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -32,6 +40,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstNameDotLastNameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'natalia.allanovna-romanova-oshostakova@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstname.lastname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testLastNameFirstInitial() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -40,6 +56,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testLastNameFirstInitialEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'allanovna-romanova-oshostakovan@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'lastnamefirstinitial'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstInitialLastName() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -48,6 +72,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstInitialLastNameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'nallanovna-romanova-oshostakova@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'filastname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstInitialUnderscoreLastName() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -56,6 +88,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstInitialUnderscoreLastNameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'nallanovna-romanova-oshostakova@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstinitial_lastname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testSingleName() { $fullname = 'Natalia'; @@ -64,6 +104,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testSingleNameEmail() + { + $fullname = 'Natalia'; + $expected_email = 'natalia@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstname_lastname',); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstInitialDotLastname() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -72,6 +120,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstInitialDotLastnameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'nallanovna-romanova-oshostakova@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstinitial.lastname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testLastNameDotFirstInitial() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -80,6 +136,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testLastNameDotFirstInitialEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'allanovna-romanova-oshostakova.n@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'lastname.firstinitial'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testLastNameUnderscoreFirstInitial() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -88,6 +152,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testLastNameUnderscoreFirstInitialEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'allanovna-romanova-oshostakova_n@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'lastname_firstinitial'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstNameLastName() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -96,6 +168,14 @@ class UserTest extends TestCase $this->assertEquals($expected_username, $user['username']); } + public function testFirstNameLastNameEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'nataliaallanovna-romanova-oshostakova@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstnamelastname'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } + public function testFirstNameLastInitial() { $fullname = "Natalia Allanovna Romanova-O'Shostakova"; @@ -103,4 +183,12 @@ class UserTest extends TestCase $user = User::generateFormattedNameFromFullName($fullname, 'firstnamelastinitial'); $this->assertEquals($expected_username, $user['username']); } + + public function testFirstNameLastInitialEmail() + { + $fullname = "Natalia Allanovna Romanova-O'Shostakova"; + $expected_email = 'nataliaa@example.com'; + $user = User::generateFormattedNameFromFullName($fullname, 'firstnamelastinitial'); + $this->assertEquals($expected_email, $user['username'] . '@example.com'); + } }