mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-25 14:54:24 +02:00
Hide non-essential form fields when configuring LDAP user group backends
resolves #9780
This commit is contained in:
parent
5a3401cc28
commit
dafa722cec
@ -75,10 +75,12 @@ class LdapUserGroupBackendForm extends Form
|
|||||||
: $resourceNames[0]
|
: $resourceNames[0]
|
||||||
);
|
);
|
||||||
|
|
||||||
$userBackends = array('none' => $this->translate('None', 'usergroupbackend.ldap.user_backend'));
|
|
||||||
$userBackendNames = $this->getLdapUserBackendNames($resource);
|
$userBackendNames = $this->getLdapUserBackendNames($resource);
|
||||||
if (! empty($userBackendNames)) {
|
if (! empty($userBackendNames)) {
|
||||||
$userBackends = array_merge($userBackends, array_combine($userBackendNames, $userBackendNames));
|
$userBackends = array_combine($userBackendNames, $userBackendNames);
|
||||||
|
$userBackends['none'] = $this->translate('None', 'usergroupbackend.ldap.user_backend');
|
||||||
|
} else {
|
||||||
|
$userBackends = array('none' => $this->translate('None', 'usergroupbackend.ldap.user_backend'));
|
||||||
}
|
}
|
||||||
$this->addElement(
|
$this->addElement(
|
||||||
'select',
|
'select',
|
||||||
@ -101,20 +103,10 @@ class LdapUserGroupBackendForm extends Form
|
|||||||
$groupConfigDisabled = $userConfigDisabled = true;
|
$groupConfigDisabled = $userConfigDisabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$dnDisabled = null; // MUST BE null
|
|
||||||
if (isset($formData['user_backend']) && $formData['user_backend'] !== 'none') {
|
|
||||||
$userBackend = UserBackend::create($formData['user_backend']);
|
|
||||||
$defaults->merge(array(
|
|
||||||
'user_base_dn' => $userBackend->getBaseDn(),
|
|
||||||
'user_class' => $userBackend->getUserClass(),
|
|
||||||
'user_name_attribute' => $userBackend->getUserNameAttribute(),
|
|
||||||
'user_filter' => $userBackend->getFilter()
|
|
||||||
));
|
|
||||||
$userConfigDisabled = $dnDisabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->createGroupConfigElements($defaults, $groupConfigDisabled);
|
$this->createGroupConfigElements($defaults, $groupConfigDisabled);
|
||||||
$this->createUserConfigElements($defaults, $userConfigDisabled, $dnDisabled);
|
if (count($userBackends) === 1 || (isset($formData['user_backend']) && $formData['user_backend'] === 'none')) {
|
||||||
|
$this->createUserConfigElements($defaults, $userConfigDisabled);
|
||||||
|
}
|
||||||
|
|
||||||
$this->addElement(
|
$this->addElement(
|
||||||
'hidden',
|
'hidden',
|
||||||
@ -212,9 +204,8 @@ class LdapUserGroupBackendForm extends Form
|
|||||||
*
|
*
|
||||||
* @param ConfigObject $defaults
|
* @param ConfigObject $defaults
|
||||||
* @param null|bool $disabled
|
* @param null|bool $disabled
|
||||||
* @param null|bool $dnDisabled
|
|
||||||
*/
|
*/
|
||||||
protected function createUserConfigElements(ConfigObject $defaults, $disabled, $dnDisabled)
|
protected function createUserConfigElements(ConfigObject $defaults, $disabled)
|
||||||
{
|
{
|
||||||
$this->addElement(
|
$this->addElement(
|
||||||
'text',
|
'text',
|
||||||
@ -234,8 +225,6 @@ class LdapUserGroupBackendForm extends Form
|
|||||||
array(
|
array(
|
||||||
'preserveDefault' => true,
|
'preserveDefault' => true,
|
||||||
'allowEmpty' => true,
|
'allowEmpty' => true,
|
||||||
'ignore' => $dnDisabled,
|
|
||||||
'disabled' => $dnDisabled,
|
|
||||||
'label' => $this->translate('LDAP User Filter'),
|
'label' => $this->translate('LDAP User Filter'),
|
||||||
'description' => $this->translate(
|
'description' => $this->translate(
|
||||||
'An additional filter to use when looking up users using the specified connection. '
|
'An additional filter to use when looking up users using the specified connection. '
|
||||||
@ -281,8 +270,6 @@ class LdapUserGroupBackendForm extends Form
|
|||||||
'user_base_dn',
|
'user_base_dn',
|
||||||
array(
|
array(
|
||||||
'preserveDefault' => true,
|
'preserveDefault' => true,
|
||||||
'ignore' => $dnDisabled,
|
|
||||||
'disabled' => $dnDisabled,
|
|
||||||
'label' => $this->translate('LDAP User Base DN'),
|
'label' => $this->translate('LDAP User Base DN'),
|
||||||
'description' => $this->translate(
|
'description' => $this->translate(
|
||||||
'The path where users can be found on the LDAP server. Leave ' .
|
'The path where users can be found on the LDAP server. Leave ' .
|
||||||
|
@ -104,15 +104,30 @@ class UserGroupBackendPage extends Form
|
|||||||
ResourceFactory::setConfig($this->createResourceConfiguration());
|
ResourceFactory::setConfig($this->createResourceConfiguration());
|
||||||
UserBackend::setConfig($this->createBackendConfiguration());
|
UserBackend::setConfig($this->createBackendConfiguration());
|
||||||
|
|
||||||
$formData['type'] = 'ldap';
|
|
||||||
$formData['user_backend'] = $this->backendConfig['name']; // We're forcing the linkage anyway..
|
|
||||||
$backendForm = new LdapUserGroupBackendForm();
|
$backendForm = new LdapUserGroupBackendForm();
|
||||||
|
$formData['type'] = 'ldap';
|
||||||
$backendForm->create($formData);
|
$backendForm->create($formData);
|
||||||
$userBackendOptions = $backendForm->getElement('user_backend')->getMultiOptions();
|
|
||||||
unset($userBackendOptions['none']);
|
|
||||||
$backendForm->getElement('name')->setValue('icingaweb2');
|
$backendForm->getElement('name')->setValue('icingaweb2');
|
||||||
$backendForm->getElement('user_backend')->setMultiOptions($userBackendOptions);
|
|
||||||
$this->addSubForm($backendForm, 'backend_form');
|
$this->addSubForm($backendForm, 'backend_form');
|
||||||
|
|
||||||
|
$backendForm->addElement(
|
||||||
|
'hidden',
|
||||||
|
'resource',
|
||||||
|
array(
|
||||||
|
'required' => true,
|
||||||
|
'value' => $this->resourceConfig['name'],
|
||||||
|
'decorators' => array('ViewHelper')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$backendForm->addElement(
|
||||||
|
'hidden',
|
||||||
|
'user_backend',
|
||||||
|
array(
|
||||||
|
'required' => true,
|
||||||
|
'value' => $this->backendConfig['name'],
|
||||||
|
'decorators' => array('ViewHelper')
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user