diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index d2cd2f1997..32d3205886 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -924,7 +924,7 @@ class SettingsController extends Controller * @since v5.0.0 */ public function postSamlSettings(SettingsSamlRequest $request) : RedirectResponse - { + { if (is_null($setting = Setting::getSettings())) { return redirect()->to('admin')->with('error', trans('admin/settings/message.update.error')); } diff --git a/app/Http/Requests/SettingsSamlRequest.php b/app/Http/Requests/SettingsSamlRequest.php index 2ab876141a..f5483df9d2 100644 --- a/app/Http/Requests/SettingsSamlRequest.php +++ b/app/Http/Requests/SettingsSamlRequest.php @@ -41,6 +41,7 @@ class SettingsSamlRequest extends FormRequest public function withValidator($validator) { $validator->after(function ($validator) { + $setting = Setting::getSettings(); if ($this->input('saml_enabled') == '1') { $idpMetadata = $this->input('saml_idp_metadata'); if (! empty($idpMetadata)) { @@ -56,7 +57,7 @@ class SettingsSamlRequest extends FormRequest } } - $was_custom_x509cert = strpos(Setting::getSettings()->saml_custom_settings, 'sp_x509cert') !== false; + $was_custom_x509cert = strpos($setting->saml_custom_settings, 'sp_x509cert') !== false; $custom_x509cert = ''; $custom_privateKey = ''; @@ -126,10 +127,14 @@ class SettingsSamlRequest extends FormRequest } if (! (empty($x509cert) && empty($privateKey))) { - $this->merge([ - 'saml_sp_x509cert' => $x509cert, - 'saml_sp_privatekey' => $privateKey, - ]); +// $this->merge([ +// 'saml_sp_x509cert' => $x509cert, +// 'saml_sp_privatekey' => $privateKey, +// ]); + $setting->saml_sp_x509cert = $x509cert; + $setting->saml_sp_privatekey = $privateKey; + $setting->save(); + } } else { $validator->errors()->add('saml_integration', 'openssl.cnf is missing/invalid'); @@ -145,15 +150,21 @@ class SettingsSamlRequest extends FormRequest } if (! empty($x509certNew)) { - $this->merge([ - 'saml_sp_x509certNew' => $x509certNew, - ]); +// $this->merge([ +// 'saml_sp_x509certNew' => $x509certNew, +// ]); + $setting->saml_sp_x509certNew = $x509certNew; + $setting->save(); } } else { - $this->merge([ - 'saml_sp_x509certNew' => '', - ]); +// $this->merge([ +// 'saml_sp_x509certNew' => '', +// ]); + $setting->saml_sp_x509certNew = ''; + $setting->save(); } + + }); } } diff --git a/app/Importer/Importer.php b/app/Importer/Importer.php index 0d4b8d4932..66b1e60dbf 100644 --- a/app/Importer/Importer.php +++ b/app/Importer/Importer.php @@ -88,6 +88,7 @@ abstract class Importer 'department' => 'department', 'manager_name' => 'manager full name', 'manager_username' => 'manager username', + 'manager_employee_num' => 'manager employee number', 'min_amt' => 'minimum quantity', 'remote' => 'remote', 'vip' => 'vip', diff --git a/app/Importer/ItemImporter.php b/app/Importer/ItemImporter.php index 9283e79ab9..92f44d991d 100644 --- a/app/Importer/ItemImporter.php +++ b/app/Importer/ItemImporter.php @@ -353,16 +353,27 @@ class ItemImporter extends Importer * @param $user_manager string * @return int id of company created/found */ - public function fetchManager($user_manager_first_name, $user_manager_last_name) + public function fetchManager($user_manager_username = null, $user_manager_employee_num = null, $user_manager_first_name = null, $user_manager_last_name = null) { - $manager = User::where('first_name', '=', $user_manager_first_name) - ->where('last_name', '=', $user_manager_last_name)->first(); + if ($user_manager_username!='') { + $manager = User::where('username', '=', $user_manager_username)->first(); + $this->log('Checking on username '.$user_manager_username); + } elseif ($user_manager_employee_num!='') { + $manager = User::where('employee_num', '=', $user_manager_employee_num)->first(); + $this->log('Checking on employee_num '.$user_manager_employee_num); + } else { + $manager = User::where('first_name', '=', $user_manager_first_name) + ->where('last_name', '=', $user_manager_last_name)->first(); + $this->log('Checking on full name'); + } + if ($manager) { $this->log('A matching Manager '.$user_manager_first_name.' '.$user_manager_last_name.' already exists'); return $manager->id; } - $this->log('No matching Manager '.$user_manager_first_name.' '.$user_manager_last_name.' found. If their user account is being created through this import, you should re-process this file again. '); + + $this->log('No matching Manager found. If their user account is being created through this import, you should re-process this file again. '); return null; } diff --git a/app/Importer/UserImporter.php b/app/Importer/UserImporter.php index 77317b3d09..29722fc98b 100644 --- a/app/Importer/UserImporter.php +++ b/app/Importer/UserImporter.php @@ -62,7 +62,7 @@ class UserImporter extends ItemImporter $this->item['activated'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'activated'))) == 1) ? '1' : 0; $this->item['employee_num'] = trim($this->findCsvMatch($row, 'employee_num')); $this->item['department_id'] = trim($this->createOrFetchDepartment(trim($this->findCsvMatch($row, 'department')))); - $this->item['manager_id'] = $this->fetchManager(trim($this->findCsvMatch($row, 'manager_first_name')), trim($this->findCsvMatch($row, 'manager_last_name'))); + $this->item['manager_id'] = $this->fetchManager(trim($this->findCsvMatch($row, 'manager_username')), trim($this->findCsvMatch($row, 'manager_employee_num')), trim($this->findCsvMatch($row, 'manager_first_name')), trim($this->findCsvMatch($row, 'manager_last_name'))); $this->item['remote'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'remote'))) == 1 ) ? '1' : 0; $this->item['vip'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'vip'))) ==1 ) ? '1' : 0; $this->item['autoassign_licenses'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'autoassign_licenses'))) ==1 ) ? '1' : 0; diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 4802eb8125..f0ba0d735a 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -330,6 +330,8 @@ class Importer extends Component 'location' => trans('general.location'), 'manager_first_name' => trans('general.importer.manager_first_name'), 'manager_last_name' => trans('general.importer.manager_last_name'), + 'manager_employee_num' => trans('general.importer.manager_employee_num'), + 'manager_username' => trans('general.importer.manager_username'), 'notes' => trans('general.notes'), 'phone_number' => trans('admin/users/table.phone'), 'remote' => trans('admin/users/general.remote'), diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 483d11fc9a..ffed385d38 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -514,6 +514,7 @@ return [ 'manager_last_name' => 'Manager Last Name', 'manager_full_name' => 'Manager Full Name', 'manager_username' => 'Manager Username', + 'manager_employee_num' => 'Manager Employee Number', 'checkout_type' => 'Checkout Type', 'checkout_location' => 'Checkout to Location', 'image_filename' => 'Image Filename', diff --git a/resources/views/settings/saml.blade.php b/resources/views/settings/saml.blade.php index 63625e5749..e57218f046 100644 --- a/resources/views/settings/saml.blade.php +++ b/resources/views/settings/saml.blade.php @@ -85,6 +85,7 @@