Fix missing config values when switching idp

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2018-07-10 20:08:42 +02:00 committed by Bjoern Schiessle
parent e378f22d10
commit da69ddd5e3
No known key found for this signature in database
GPG key ID: 2378A753E2BF04F6
2 changed files with 9 additions and 8 deletions

View file

@ -164,11 +164,11 @@ $(function() {
var entries = data[category];
Object.keys(entries).forEach(function (configKey) {
var element = $('#user-saml-settings *[data-key="' + configKey + '"]');
if ($('#user-saml-settings #user-saml-' + configKey).length) {
element = $('#user-saml-' + configKey);
if ($('#user-saml-settings #user-saml-' + category + ' #user-saml-' + configKey).length) {
element = $('#user-saml-' + category + ' #user-saml-' + configKey);
}
if ($('#user-saml-settings [name="' + configKey + '"]').length) {
element = $('[name="' + configKey + '"]');
if ($('#user-saml-settings #user-saml-' + category + ' [name="' + configKey + '"]').length) {
element = $('#user-saml-' + category + ' [name="' + configKey + '"]');
}
if(element.is('input') && element.prop('type') === 'text') {
element.val(entries[configKey])

View file

@ -56,9 +56,10 @@ class SettingsController extends Controller {
*/
$params = $this->admin->getForm()->getParams();
$params['idp'] = [
'singleLogoutService.url' => null,
'singleSignOnService.url' => null,
'idp-entityId' => null,
'singleLogoutService.url' => ['required' => false],
'singleSignOnService.url' => ['required' => false],
'entityId' => ['required' => false],
'x509cert' => ['required' => false],
];
/* Fetch all config values for the given providerId */
$settings = [];
@ -68,11 +69,11 @@ class SettingsController extends Controller {
}
foreach ($content as $setting => $details) {
$prefix = $providerId === '1' ? '' : $providerId . '-';
$key = $prefix . $category . '-' . $setting;
/* use security as category instead of security-* */
if (strpos($category, 'security-') === 0) {
$category = 'security';
}
$key = $prefix . $category . '-' . $setting;
$settings[$category][$setting] = $this->config->getAppValue('user_saml', $key, '');
}
}