From 6503f9c667c1428c68461f8c58e1b6e8bdbb6100 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 21 Aug 2025 20:23:47 +0100 Subject: [PATCH] Revert "Merge pull request #17650 from grokability/add-displayName-to-users" This reverts commit 4770e469b4e383301e72c931d3589d2adba3b40b, reversing changes made to 29a18c7c8bc108ede2d9b56f4de0cf57daa5c769. Signed-off-by: snipe --- app/Console/Commands/LdapSync.php | 21 - .../Controllers/Api/SettingsController.php | 1 - app/Http/Controllers/Api/UsersController.php | 10 - app/Http/Controllers/SettingsController.php | 6 - .../Controllers/Users/UsersController.php | 2 - app/Http/Transformers/UsersTransformer.php | 10 +- app/Importer/UserImporter.php | 1 - app/Livewire/Importer.php | 8 - app/Models/SnipeModel.php | 17 +- app/Models/SnipeSCIMConfig.php | 3 +- app/Models/User.php | 16 +- app/Presenters/UserPresenter.php | 12 - ...08_19_114742_add_display_name_to_users.php | 32 - ...4823_add_display_name_to_ldap_settings.php | 82 - .../lang/en-US/admin/settings/general.php | 57 +- resources/lang/en-US/admin/users/table.php | 1 - resources/views/modals/user.blade.php | 12 - resources/views/settings/ldap.blade.php | 1637 ++++++++--------- resources/views/users/edit.blade.php | 17 - resources/views/users/view.blade.php | 56 +- 20 files changed, 825 insertions(+), 1176 deletions(-) delete mode 100644 database/migrations/2025_08_19_114742_add_display_name_to_users.php delete mode 100644 database/migrations/2025_08_19_174823_add_display_name_to_ldap_settings.php diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index 7ad4648702..88015b14a1 100644 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -55,8 +55,6 @@ class LdapSync extends Command ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); //600 seconds = 10 minutes ini_set('memory_limit', env('LDAP_MEM_LIM', '500M')); - - // Map the LDAP attributes to the Snipe-IT user fields. $ldap_map = [ "username" => Setting::getSettings()->ldap_username_field, "last_name" => Setting::getSettings()->ldap_lname_field, @@ -65,17 +63,11 @@ class LdapSync extends Command "emp_num" => Setting::getSettings()->ldap_emp_num, "email" => Setting::getSettings()->ldap_email, "phone" => Setting::getSettings()->ldap_phone_field, - "mobile" => Setting::getSettings()->ldap_mobile, "jobtitle" => Setting::getSettings()->ldap_jobtitle, - "address" => Setting::getSettings()->ldap_address, - "city" => Setting::getSettings()->ldap_city, - "state" => Setting::getSettings()->ldap_state, - "zip" => Setting::getSettings()->ldap_zip, "country" => Setting::getSettings()->ldap_country, "location" => Setting::getSettings()->ldap_location, "dept" => Setting::getSettings()->ldap_dept, "manager" => Setting::getSettings()->ldap_manager, - "display_name" => Setting::getSettings()->ldap_display_name, ]; $ldap_default_group = Setting::getSettings()->ldap_default_group; @@ -242,11 +234,9 @@ class LdapSync extends Command } - // Assign the mapped LDAP attributes for each user to the Snipe-IT user fields for ($i = 0; $i < $results['count']; $i++) { $item = []; $item['username'] = $results[$i][$ldap_map["username"]][0] ?? ''; - $item['display_name'] = $results[$i][$ldap_map["display_name"]][0] ?? ''; $item['employee_number'] = $results[$i][$ldap_map["emp_num"]][0] ?? ''; $item['lastname'] = $results[$i][$ldap_map["last_name"]][0] ?? ''; $item['firstname'] = $results[$i][$ldap_map["first_name"]][0] ?? ''; @@ -254,13 +244,8 @@ class LdapSync extends Command $item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? ''; $item['location_id'] = $results[$i]['location_id'] ?? ''; $item['telephone'] = $results[$i][$ldap_map["phone"]][0] ?? ''; - $item['mobile'] = $results[$i][$ldap_map["mobile"]][0] ?? ''; $item['jobtitle'] = $results[$i][$ldap_map["jobtitle"]][0] ?? ''; - $item['address'] = $results[$i][$ldap_map["ldap_address"]][0] ?? ''; - $item['city'] = $results[$i][$ldap_map["city"]][0] ?? ''; - $item['state'] = $results[$i][$ldap_map["state"]][0] ?? ''; $item['country'] = $results[$i][$ldap_map["country"]][0] ?? ''; - $item['zip'] = $results[$i][$ldap_map["zip"]][0] ?? ''; $item['department'] = $results[$i][$ldap_map["dept"]][0] ?? ''; $item['manager'] = $results[$i][$ldap_map["manager"]][0] ?? ''; $item['location'] = $results[$i][$ldap_map["location"]][0] ?? ''; @@ -293,9 +278,6 @@ class LdapSync extends Command if($ldap_map["username"] != null){ $user->username = $item['username']; } - if($ldap_map["display_name"] != null){ - $user->display_name = $item['display_name']; - } if($ldap_map["last_name"] != null){ $user->last_name = $item['lastname']; } @@ -311,9 +293,6 @@ class LdapSync extends Command if($ldap_map["phone"] != null){ $user->phone = $item['telephone']; } - if($ldap_map["mobile"] != null){ - $user->mobile = $item['mobile']; - } if($ldap_map["jobtitle"] != null){ $user->jobtitle = $item['jobtitle']; } diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index 3e48eb23f1..134d24ef2a 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -51,7 +51,6 @@ class SettingsController extends Controller })->slice(0, 10)->map(function ($item) use ($settings) { return (object) [ 'username' => $item[$settings['ldap_username_field']][0] ?? null, - 'display_name' => $item[$settings['ldap_display_name']][0] ?? null, 'employee_number' => $item[$settings['ldap_emp_num']][0] ?? null, 'lastname' => $item[$settings['ldap_lname_field']][0] ?? null, 'firstname' => $item[$settings['ldap_fname_field']][0] ?? null, diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 133937ed75..a0d9aeaa30 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -64,7 +64,6 @@ class UsersController extends Controller 'users.jobtitle', 'users.last_login', 'users.last_name', - 'users.display_name', 'users.locale', 'users.location_id', 'users.manager_id', @@ -155,10 +154,6 @@ class UsersController extends Controller $users = $users->where('users.last_name', '=', $request->input('last_name')); } - if ($request->filled('display_name')) { - $users = $users->where('users.display_name', '=', $request->input('display_name')); - } - if ($request->filled('employee_num')) { $users = $users->where('users.employee_num', '=', $request->input('employee_num')); } @@ -289,7 +284,6 @@ class UsersController extends Controller [ 'last_name', 'first_name', - 'display_name', 'email', 'jobtitle', 'username', @@ -517,10 +511,6 @@ class UsersController extends Controller $user->username = $request->input('username'); } - if ($request->filled('display_name')) { - $user->display_name = $request->input('display_name'); - } - if ($request->filled('email')) { $user->email = $request->input('email'); } diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 8c57efa5eb..56b36470d4 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -873,7 +873,6 @@ class SettingsController extends Controller $setting->ldap_default_group = $request->input('ldap_default_group'); $setting->ldap_filter = $request->input('ldap_filter'); $setting->ldap_username_field = $request->input('ldap_username_field'); - $setting->ldap_display_name = $request->input('ldap_display_name'); $setting->ldap_lname_field = $request->input('ldap_lname_field'); $setting->ldap_fname_field = $request->input('ldap_fname_field'); $setting->ldap_auth_filter_query = $request->input('ldap_auth_filter_query'); @@ -890,12 +889,7 @@ class SettingsController extends Controller $setting->ldap_pw_sync = $request->input('ldap_pw_sync', '0'); $setting->custom_forgot_pass_url = $request->input('custom_forgot_pass_url'); $setting->ldap_phone_field = $request->input('ldap_phone'); - $setting->ldap_mobile = $request->input('ldap_mobile'); $setting->ldap_jobtitle = $request->input('ldap_jobtitle'); - $setting->ldap_address = $request->input('ldap_address'); - $setting->ldap_city = $request->input('ldap_city'); - $setting->ldap_state = $request->input('ldap_state'); - $setting->ldap_zip = $request->input('ldap_zip'); $setting->ldap_country = $request->input('ldap_country'); $setting->ldap_location = $request->input('ldap_location'); $setting->ldap_dept = $request->input('ldap_dept'); diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 35ef7d3e68..2275e565cb 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -88,7 +88,6 @@ class UsersController extends Controller //Username, email, and password need to be handled specially because the need to respect config values on an edit. $user->email = trim($request->input('email')); $user->username = trim($request->input('username')); - $user->display_name = $request->input('display_name'); if ($request->filled('password')) { $user->password = bcrypt($request->input('password')); } @@ -241,7 +240,6 @@ class UsersController extends Controller $user->first_name = $request->input('first_name'); $user->last_name = $request->input('last_name'); - $user->display_name = $request->input('display_name'); $user->two_factor_optin = $request->input('two_factor_optin') ?: 0; $user->locale = $request->input('locale'); $user->employee_num = $request->input('employee_num'); diff --git a/app/Http/Transformers/UsersTransformer.php b/app/Http/Transformers/UsersTransformer.php index a4c1cdfbc6..fb941007ab 100644 --- a/app/Http/Transformers/UsersTransformer.php +++ b/app/Http/Transformers/UsersTransformer.php @@ -31,11 +31,10 @@ class UsersTransformer $array = [ 'id' => (int) $user->id, 'avatar' => e($user->present()->gravatar) ?? null, - 'name' => e($user->getFullNameAttribute()) ?? null, - 'first_name' => e($user->first_name) ?? null, - 'last_name' => e($user->last_name) ?? null, - 'display_name' => e($user->display_name) ?? null, - 'username' => e($user->username) ?? null, + 'name' => e($user->getFullNameAttribute()), + 'first_name' => e($user->first_name), + 'last_name' => e($user->last_name), + 'username' => e($user->username), 'remote' => ($user->remote == '1') ? true : false, 'locale' => ($user->locale) ? e($user->locale) : null, 'employee_num' => ($user->employee_num) ? e($user->employee_num) : null, @@ -139,7 +138,6 @@ class UsersTransformer 'first_name' => e($user->first_name), 'last_name' => e($user->last_name), 'username' => e($user->username), - 'display_name' => e($user->display_name), 'created_by' => $user->adminuser ? [ 'id' => (int) $user->adminuser->id, 'name'=> e($user->adminuser->present()->fullName), diff --git a/app/Importer/UserImporter.php b/app/Importer/UserImporter.php index 942f1cf4a2..633551c24d 100644 --- a/app/Importer/UserImporter.php +++ b/app/Importer/UserImporter.php @@ -47,7 +47,6 @@ class UserImporter extends ItemImporter // Pull the records from the CSV to determine their values $this->item['id'] = trim($this->findCsvMatch($row, 'id')); $this->item['username'] = trim($this->findCsvMatch($row, 'username')); - $this->item['display_name'] = trim($this->findCsvMatch($row, 'display_name')); $this->item['first_name'] = trim($this->findCsvMatch($row, 'first_name')); $this->item['last_name'] = trim($this->findCsvMatch($row, 'last_name')); $this->item['email'] = trim($this->findCsvMatch($row, 'email')); diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index d86b2469c1..6e6a6f1847 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -339,7 +339,6 @@ class Importer extends Component 'start_date' => trans('general.start_date'), 'state' => trans('general.state'), 'username' => trans('admin/users/table.username'), - 'display_name' => trans('admin/users/table.display_name'), 'vip' => trans('general.importer.vip'), 'website' => trans('general.website'), 'zip' => trans('general.zip'), @@ -486,13 +485,6 @@ class Importer extends Component 'username', trans('general.importer.checked_out_to_username'), ], - 'display_name' => - [ - 'display name', - 'displayName', - 'display', - trans('admin/users/table.display_name'), - ], 'first_name' => [ 'first name', diff --git a/app/Models/SnipeModel.php b/app/Models/SnipeModel.php index 4cc5aa957d..f300a22bd7 100644 --- a/app/Models/SnipeModel.php +++ b/app/Models/SnipeModel.php @@ -3,7 +3,6 @@ namespace App\Models; use App\Helpers\Helper; -use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Model; class SnipeModel extends Model @@ -156,19 +155,9 @@ class SnipeModel extends Model $this->attributes['status_id'] = $value; } - // This gets a little twitchy since *most* things have a property in the table called "name" (but users don't) - // AND we want to be able to use the actual display_name value from the database if it's set (usually via SCIM) - protected function displayNameAttribute(): Attribute + // + public function getDisplayNameAttribute() { - // This override should only kick in if the model has a display_name property (users) - if (isset($this->display_name)) { - return Attribute::make( - get: fn (string $value) => $this->display_name, - ); - } - return Attribute::make( - get: fn (string $value) => $this->name, - ); + return $this->name; } - } diff --git a/app/Models/SnipeSCIMConfig.php b/app/Models/SnipeSCIMConfig.php index 5fce6ef292..c0d82dff43 100644 --- a/app/Models/SnipeSCIMConfig.php +++ b/app/Models/SnipeSCIMConfig.php @@ -34,7 +34,6 @@ class SnipeSCIMConfig extends \ArieTimmerman\Laravel\SCIMServer\SCIMConfig 'validations' => [ $user_prefix . 'userName' => 'required', - $user_prefix . 'displayName' => 'nullable|string', $user_prefix . 'name.givenName' => 'required', $user_prefix . 'name.familyName' => 'nullable|string', $user_prefix . 'externalId' => 'nullable|string', @@ -122,7 +121,7 @@ class SnipeSCIMConfig extends \ArieTimmerman\Laravel\SCIMServer\SCIMConfig 'honorificSuffix' => null ], - 'displayName' => AttributeMapping::eloquent("display_name"), + 'displayName' => null, 'nickName' => null, 'profileUrl' => null, 'title' => AttributeMapping::eloquent('jobtitle'), diff --git a/app/Models/User.php b/app/Models/User.php index 5374b5e284..0c1cbe21fd 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -64,7 +64,6 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo 'first_name', 'jobtitle', 'last_name', - 'display_name', 'ldap_import', 'locale', 'location_id', @@ -104,8 +103,6 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo protected $rules = [ 'first_name' => 'required|string|min:1|max:191', - 'last_name' => 'nullable|string|max:191', - 'display_name' => 'nullable|string|max:191', 'username' => 'required|string|min:1|unique_undeleted|max:191', 'email' => 'email|nullable|max:191', 'password' => 'required|min:8', @@ -116,9 +113,9 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo 'start_date' => 'nullable|date_format:Y-m-d', 'end_date' => 'nullable|date_format:Y-m-d|after_or_equal:start_date', 'autoassign_licenses' => 'boolean', - 'address' => 'nullable|string|max:191', - 'city' => 'nullable|string|max:191', - 'state' => 'nullable|string|max:191', + 'address' => 'max:191|nullable', + 'city' => 'max:191|nullable', + 'state' => 'min:2|max:191|nullable', 'country' => 'min:2|max:191|nullable', 'zip' => 'max:10|nullable', 'vip' => 'boolean', @@ -135,16 +132,15 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo 'address', 'city', 'country', - 'display_name', 'email', 'employee_num', 'first_name', 'jobtitle', 'last_name', 'locale', - 'mobile', 'notes', 'phone', + 'mobile', 'state', 'username', 'website', @@ -161,7 +157,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo 'department' => ['name'], 'groups' => ['name'], 'company' => ['name'], - 'manager' => ['first_name', 'last_name', 'username', 'display_name'], + 'manager' => ['first_name', 'last_name', 'username'], ]; @@ -863,7 +859,6 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo { return $query->where('first_name', 'LIKE', '%' . $search . '%') ->orWhere('last_name', 'LIKE', '%' . $search . '%') - ->orWhere('display_name', 'LIKE', '%' . $search . '%') ->orWhereMultipleColumns( [ 'users.first_name', @@ -1073,7 +1068,6 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo ->orWhere('users.jobtitle', 'LIKE', '%' . $search . '%') ->orWhere('users.employee_num', 'LIKE', '%' . $search . '%') ->orWhere('users.username', 'LIKE', '%' . $search . '%') - ->orWhere('users.display_name', 'LIKE', '%' . $search . '%') ->orwhereRaw('CONCAT(users.first_name," ",users.last_name) LIKE \''.$search.'%\''); } diff --git a/app/Presenters/UserPresenter.php b/app/Presenters/UserPresenter.php index 8eb28091c5..c60457ea05 100644 --- a/app/Presenters/UserPresenter.php +++ b/app/Presenters/UserPresenter.php @@ -79,14 +79,6 @@ class UserPresenter extends Presenter 'visible' => false, 'formatter' => 'usersLinkFormatter', ], - [ - 'field' => 'display_name', - 'searchable' => true, - 'sortable' => true, - 'switchable' => false, - 'title' => trans('admin/users/table.display_name'), - 'visible' => true, - ], [ 'field' => 'jobtitle', 'searchable' => true, @@ -199,7 +191,6 @@ class UserPresenter extends Presenter 'visible' => true, 'formatter' => 'usernameRoleLinkFormatter', ], - [ 'field' => 'employee_num', 'searchable' => true, @@ -458,9 +449,6 @@ class UserPresenter extends Presenter */ public function fullName() { - if ($this->display_name) { - return html_entity_decode($this->display_name, ENT_QUOTES | ENT_XML1, 'UTF-8'); - } return html_entity_decode($this->first_name.' '.$this->last_name, ENT_QUOTES | ENT_XML1, 'UTF-8'); } diff --git a/database/migrations/2025_08_19_114742_add_display_name_to_users.php b/database/migrations/2025_08_19_114742_add_display_name_to_users.php deleted file mode 100644 index d55e755d3a..0000000000 --- a/database/migrations/2025_08_19_114742_add_display_name_to_users.php +++ /dev/null @@ -1,32 +0,0 @@ -text('display_name')->after('last_name')->nullable()->default(null); - } - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('users', function (Blueprint $table) { - if (Schema::hasColumn('users', 'display_name')) { - $table->dropColumn('display_name'); - } - }); - } -}; diff --git a/database/migrations/2025_08_19_174823_add_display_name_to_ldap_settings.php b/database/migrations/2025_08_19_174823_add_display_name_to_ldap_settings.php deleted file mode 100644 index fb980af6dd..0000000000 --- a/database/migrations/2025_08_19_174823_add_display_name_to_ldap_settings.php +++ /dev/null @@ -1,82 +0,0 @@ -string('ldap_display_name', 191)->after('ldap_fname_field')->nullable()->default(null); - } - - if (!Schema::hasColumn('settings', 'ldap_zip')) { - $table->string('ldap_zip', 191)->after('ldap_manager')->nullable()->default(null); - } - - if (!Schema::hasColumn('settings', 'ldap_state')) { - $table->string('ldap_state', 191)->after('ldap_manager')->nullable()->default(null); - } - - if (!Schema::hasColumn('settings', 'ldap_city')) { - $table->string('ldap_city', 191)->after('ldap_manager')->nullable()->default(null); - } - - if (!Schema::hasColumn('settings', 'ldap_address')) { - $table->string('ldap_address', 191)->after('ldap_manager')->nullable()->default(null); - } - - if (!Schema::hasColumn('settings', 'ldap_mobile')) { - $table->string('ldap_mobile', 191)->after('ldap_phone_field')->nullable()->default(null); - } - - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_display_name')) { - $table->dropColumn('ldap_display_name'); - } - }); - - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_zip')) { - $table->dropColumn('ldap_zip'); - } - }); - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_address')) { - $table->dropColumn('ldap_address'); - } - }); - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_city')) { - $table->dropColumn('ldap_city'); - } - }); - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_state')) { - $table->dropColumn('ldap_state'); - } - }); - Schema::table('settings', function (Blueprint $table) { - if (Schema::hasColumn('settings', 'ldap_mobile')) { - $table->dropColumn('ldap_mobile'); - } - }); - - - } -}; diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 842fe5e338..4e8143a517 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -93,11 +93,11 @@ return [ 'ldap_integration' => 'LDAP Integration', 'ldap_settings' => 'LDAP Settings', 'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.', - 'ldap_location' => 'LDAP Location Field', -'ldap_location_help' => 'The LDAP Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', + 'ldap_location' => 'LDAP Location', +'ldap_location_help' => 'The Ldap Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', 'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.', 'ldap_login_sync_help' => 'This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.', - 'ldap_manager' => 'LDAP Manager Field', + 'ldap_manager' => 'LDAP Manager', 'ldap_server' => 'LDAP Server', 'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)', 'ldap_server_cert' => 'LDAP SSL certificate validation', @@ -106,32 +106,26 @@ return [ 'ldap_tls' => 'Use TLS', 'ldap_tls_help' => 'This should be checked only if you are running STARTTLS on your LDAP server. ', 'ldap_uname' => 'LDAP Bind Username', - 'ldap_dept' => 'LDAP Department Field', - 'ldap_phone' => 'LDAP Phone Number Field', - 'ldap_jobtitle' => 'LDAP Job Title Field', - 'ldap_country' => 'LDAP Country Field', + 'ldap_dept' => 'LDAP Department', + 'ldap_phone' => 'LDAP Telephone Number', + 'ldap_jobtitle' => 'LDAP Job Title', + 'ldap_country' => 'LDAP Country', 'ldap_pword' => 'LDAP Bind Password', 'ldap_basedn' => 'Base Bind DN', 'ldap_filter' => 'LDAP Filter', 'ldap_pw_sync' => 'Cache LDAP Passwords', 'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.', - 'ldap_username_field' => 'LDAP Username Field', - 'ldap_display_name' => 'LDAP Display Name Field', - 'ldap_lname_field' => 'LDAP Last Name Field', - 'ldap_fname_field' => 'LDAP First Name Field', + 'ldap_username_field' => 'Username Field', + 'ldap_lname_field' => 'Last Name', + 'ldap_fname_field' => 'LDAP First Name', 'ldap_auth_filter_query' => 'LDAP Authentication query', 'ldap_version' => 'LDAP Version', 'ldap_active_flag' => 'LDAP Active Flag', 'ldap_activated_flag_help' => 'This value is used to determine whether a synced user can login to Snipe-IT. It does not affect the ability to check items in or out to them, and should be the attribute name within your AD/LDAP, not the value.

If this field is set to a field name that does not exist in your AD/LDAP, or the value in the AD/LDAP field is set to 0 or false, user login will be disabled. If the value in the AD/LDAP field is set to 1 or true or any other text means the user can log in. When the field is blank in your AD, we respect the userAccountControl attribute, which usually allows non-suspended users to log in.', 'ldap_invert_active_flag' => 'LDAP Invert Active Flag', 'ldap_invert_active_flag_help' => 'If enabled: when the value returned by LDAP Active Flag is 0 or false the user account will be active.', - 'ldap_emp_num' => 'LDAP Employee Number Field', - 'ldap_email' => 'LDAP Email Field', - 'ldap_mobile' => 'LDAP Mobile Field', - 'ldap_address' => 'LDAP Address Field', - 'ldap_city' => 'LDAP City Field', - 'ldap_state' => 'LDAP State/Province Field', - 'ldap_zip' => 'LDAP Postal Code Field', + 'ldap_emp_num' => 'LDAP Employee Number', + 'ldap_email' => 'LDAP Email', 'ldap_test' => 'Test LDAP', 'ldap_test_sync' => 'Test LDAP Synchronization', 'license' => 'Software License', @@ -468,24 +462,21 @@ return [ 'legends' => [ - 'checkin' => 'Checkin Preferences', - 'colors' => 'Colors & Skins', - 'dashboard' => 'Login & Dashboard Preferences', - 'email' => 'Email Preferences', - 'eula' => 'EULA & Acceptance Preferences', - 'footer' => 'Footer Preferences', + 'scoping' => 'Scoping', 'formats' => 'Default Formats', + 'profiles' => 'User Profiles', + 'eula' => 'EULA & Acceptance Preferences', + 'misc_display' => 'Miscellaneous Display Options', + 'email' => 'Email Preferences', + 'checkin' => 'Checkin Preferences', + 'dashboard' => 'Login & Dashboard Preferences', + 'misc' => 'Miscellaneous', + 'logos' => 'Logos & Display', + 'colors' => 'Colors & Skins', + 'footer' => 'Footer Preferences', + 'security' => 'Security Preferences', 'general' => 'General', 'intervals' => 'Intervals & Thresholds', - 'logos' => 'Logos & Display', - 'mapping' => 'LDAP Field Mapping', - 'test' => 'Test LDAP Connection', - 'misc' => 'Miscellaneous', - 'misc_display' => 'Miscellaneous Display Options', - 'profiles' => 'User Profiles', - 'server' => 'Server Settings', - 'scoping' => 'Scoping', - 'security' => 'Security Preferences', ], diff --git a/resources/lang/en-US/admin/users/table.php b/resources/lang/en-US/admin/users/table.php index 2e2f9c7995..e7a5aa6490 100644 --- a/resources/lang/en-US/admin/users/table.php +++ b/resources/lang/en-US/admin/users/table.php @@ -35,7 +35,6 @@ return array( 'total_assets_cost' => "Total Assets Cost", 'updateuser' => 'Update User', 'username' => 'Username', - 'display_name' => 'Display Name', 'user_deleted_text' => 'This user has been marked as deleted.', 'username_note' => '(This is used for Active Directory binding only, not for login.)', 'cloneuser' => 'Clone User', diff --git a/resources/views/modals/user.blade.php b/resources/views/modals/user.blade.php index e9b83fc5ae..04d0c82357 100644 --- a/resources/views/modals/user.blade.php +++ b/resources/views/modals/user.blade.php @@ -79,18 +79,6 @@ -
-
-
- -
-
- - -
-
-
-
diff --git a/resources/views/settings/ldap.blade.php b/resources/views/settings/ldap.blade.php index 19051f653b..27e6a20dea 100644 --- a/resources/views/settings/ldap.blade.php +++ b/resources/views/settings/ldap.blade.php @@ -65,357 +65,728 @@
-
+
-
- - {{ trans('admin/settings/general.legends.server') }} - - -
-
- -
-
+ +
+
+ +
+
- + - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
+ @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
- -
-
- -
-
- - @error('is_ad') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - -

{{ trans('admin/settings/general.ldap_pw_sync_help') }}

- @error('ldap_pw_sync') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif - -
-
- - -
-
- -
-
- -

{{ trans('admin/settings/general.ad_domain_help') }}

- @error('ad_domain') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_client_tls_key') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- -

{{ trans('admin/settings/general.ldap_client_tls_cert_help') }}

- @error('ldap_client_tls_cert') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_server') - - - {{ $message }} - - @enderror - -

{{ trans('admin/settings/general.ldap_server_help') }}

- - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_tls') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_server_cert_ignore') - - - {{ $message }} - - @enderror - -

- {{ trans('admin/settings/general.ldap_server_cert_help') }} -

- @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_uname') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_pword') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_basedn') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_filter') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - - @error('ldap_auth_filter_query') + +
+
+ +
+
+ + @error('is_ad') - - {!! $message !!} - - @enderror + + {{ $message }} + + @enderror + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + +

{{ trans('admin/settings/general.ldap_pw_sync_help') }}

+ @error('ldap_pw_sync') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif + +
+
+ + +
+
+ +
+
+ +

{{ trans('admin/settings/general.ad_domain_help') }}

+ @error('ad_domain') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_client_tls_key') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ +

{{ trans('admin/settings/general.ldap_client_tls_cert_help') }}

+ @error('ldap_client_tls_cert') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_server') + + + {{ $message }} + + @enderror + +

{{ trans('admin/settings/general.ldap_server_help') }}

+ + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_tls') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_server_cert_ignore') + + + {{ $message }} + + @enderror + +

+ {{ trans('admin/settings/general.ldap_server_cert_help') }} +

+ @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_uname') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_pword') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_basedn') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_filter') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_username_field') + + + {!! $message !!} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_lname_field') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_fname_field') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + + @error('ldap_auth_filter_query') + + + {!! $message !!} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + + +
+
+ +
+ +
+ + @if ($groups->count()) + @if ((Config::get('app.lock_passwords') || (!Auth::user()->isSuperUser()))) +
    + @foreach ($groups as $id => $group) + {!! '
  • '.e($group).'
  • ' !!} + @endforeach +
+ + {{ trans('admin/users/general.group_memberships_helpblock') }} + @else +
+ + + + {{ trans('admin/settings/general.ldap_default_group_info') }} + +
+ @endif + @else +

{!! trans('admin/settings/general.no_groups') !!}

+ @endif + +
+
+ + +
+
+ +
+
+ +

{!! trans('admin/settings/general.ldap_activated_flag_help') !!}

+ + @error('ldap_active_flag') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_invert_active_flag') + + + {{ $message }} + + @enderror + +

+ {!! trans('admin/settings/general.ldap_invert_active_flag_help') !!} +

+ + @if (config('app.lock_passwords')===true) +

+ + {!! trans('general.feature_disabled') !!} +

+ @endif +
+ +
+ + +
+
+ +
+
+ + @error('ldap_emp_num') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ +
+
+ +
+
+ + + @error('ldap_dept') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ +
+
+ +
+
+ + @error('ldap_manager') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_email') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_phone') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_jobtitle') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ + +
+
+ +
+
+ + @error('ldap_country') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ +
+
+ +
+
+ +

{!! trans('admin/settings/general.ldap_location_help') !!}

+ @error('ldap_location') + + + {{ $message }} + + @enderror + + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
+ @if ($setting->ldap_enabled) + + +
+
+ +
+ +
+
+ +
+
+

{{ trans('admin/settings/general.ldap_login_sync_help') }}

@if (config('app.lock_passwords')===true)

@@ -423,543 +794,68 @@

@endif
+
- - -
+ +
- +
-
+
+
+ +
+
+ +
+ - @if ($groups->count()) - @if ((Config::get('app.lock_passwords') || (!Auth::user()->isSuperUser()))) -
    - @foreach ($groups as $id => $group) - {!! '
  • '.e($group).'
  • ' !!} - @endforeach -
- - {{ trans('admin/users/general.group_memberships_helpblock') }} - @else -
- - - - {{ trans('admin/settings/general.ldap_default_group_info') }} - -
- @endif - @else -

{!! trans('admin/settings/general.no_groups') !!}

- @endif
+
+
+ + + +
+
+

{{ trans('admin/settings/general.ldap_login_test_help') }}

+
+ +
+ + + @endif + + +
+
+
+
+ +

{{ trans('admin/settings/general.custom_forgot_pass_url_help') }}

+ @error('custom_forgot_pass_url') + + + {{ $message }} + + @enderror -
- -
- - {{ trans('admin/settings/general.legends.test') }} - - @if ($setting->ldap_enabled) - - -
-
- -
- -
-
- -
-
-

{{ trans('admin/settings/general.ldap_login_sync_help') }}

- @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
- -
- - -
-
- -
-
-
-
- -
-
- -
- + @if (config('app.lock_passwords')===true) +

+ + {{ trans('general.feature_disabled') }} +

+ @endif +
+
-
-
-
- - - -
-
-

{{ trans('admin/settings/general.ldap_login_test_help') }}

-
- -
- - - @endif - - - -
- - {{ trans('admin/settings/general.legends.mapping') }} - - -
-
- -
-
- - @error('ldap_username_field') - - - {!! $message !!} - - @enderror - -
-
- - -
-
- -
-
- - @error('ldap_lname_field') - - - {{ $message }} - - @enderror - -
-
- - -
-
- -
-
- - @error('ldap_fname_field') - - - {{ $message }} - - @enderror - -
-
- - -
-
- -
-
- - @error('ldap_display_name') - - - {{ $message }} - - @enderror - -
-
- - - -
-
- -
-
- -

{!! trans('admin/settings/general.ldap_activated_flag_help') !!}

- - @error('ldap_active_flag') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_invert_active_flag') - - - {{ $message }} - - @enderror - -

- {!! trans('admin/settings/general.ldap_invert_active_flag_help') !!} -

- - @if (config('app.lock_passwords')===true) -

- - {!! trans('general.feature_disabled') !!} -

- @endif -
- -
- - -
-
- -
-
- - @error('ldap_emp_num') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- -
-
- -
-
- - - @error('ldap_dept') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- -
-
- -
-
- - @error('ldap_manager') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_email') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_phone') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_mobile') - - - {{ $message }} - - @enderror -
-
- - -
-
- -
-
- - @error('ldap_jobtitle') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- - @error('ldap_address') - - - {{ $message }} - - @enderror -
-
- - -
-
- -
-
- - @error('ldap_city') - - - {{ $message }} - - @enderror -
-
- - -
-
- -
-
- - @error('ldap_state') - - - {{ $message }} - - @enderror -
-
- - -
-
- -
-
- - @error('ldap_zip') - - - {{ $message }} - - @enderror -
-
- - - -
-
- -
-
- - @error('ldap_country') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- - -
-
- -
-
- -

{!! trans('admin/settings/general.ldap_location_help') !!}

- @error('ldap_location') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
-
- -
- - {{ trans('admin/settings/general.legends.misc') }} - - -
-
- -
-
- -

{{ trans('admin/settings/general.custom_forgot_pass_url_help') }}

- @error('custom_forgot_pass_url') - - - {{ $message }} - - @enderror - - @if (config('app.lock_passwords')===true) -

- - {{ trans('general.feature_disabled') }} -

- @endif -
-
- -
- {{ $user->first_name }} {{ $user->last_name }} + {{ $user->present()->fullName() }}
+ + @if (!is_null($user->company)) +
+ +
+ {{ trans('general.company') }} +
+
+ @can('view', 'App\Models\Company') + + {{ $user->company->name }} + + @else + {{ $user->company->name }} + @endcan +
+ +
+ + @endif +
@@ -345,19 +366,6 @@
- - @if ($user->display_name) -
- -
- {{ trans('admin/users/table.display_name') }} -
-
- {{ $user->display_name }} -
-
- @endif - @if (($user->address) || ($user->city) || ($user->state) || ($user->country))
@@ -386,26 +394,6 @@
@endif - - @if (!is_null($user->company)) -
- -
- {{ trans('general.company') }} -
-
- @can('view', 'App\Models\Company') - - {{ $user->company->name }} - - @else - {{ $user->company->name }} - @endcan -
- -
- - @endif