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/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 @@