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