diff --git a/application/forms/Config/Authentication/AutologinBackendForm.php b/application/forms/Config/Authentication/AutologinBackendForm.php index 1725ea3c9..a21d2c006 100644 --- a/application/forms/Config/Authentication/AutologinBackendForm.php +++ b/application/forms/Config/Authentication/AutologinBackendForm.php @@ -66,7 +66,7 @@ class AutologinBackendForm extends Form 'hidden', 'backend', array( - 'required' => true, + 'disabled' => true, 'value' => 'autologin' ) ); diff --git a/application/forms/Config/Authentication/DbBackendForm.php b/application/forms/Config/Authentication/DbBackendForm.php index 31e6b2472..572a09c2e 100644 --- a/application/forms/Config/Authentication/DbBackendForm.php +++ b/application/forms/Config/Authentication/DbBackendForm.php @@ -75,7 +75,7 @@ class DbBackendForm extends Form 'hidden', 'backend', array( - 'required' => true, + 'disabled' => true, 'value' => 'db' ) ); diff --git a/application/forms/Config/Authentication/LdapBackendForm.php b/application/forms/Config/Authentication/LdapBackendForm.php index 3be140fb8..9b48c3dbc 100644 --- a/application/forms/Config/Authentication/LdapBackendForm.php +++ b/application/forms/Config/Authentication/LdapBackendForm.php @@ -96,7 +96,7 @@ class LdapBackendForm extends Form 'hidden', 'backend', array( - 'required' => true, + 'disabled' => true, 'value' => 'ldap' ) ); diff --git a/library/Icinga/Web/Form.php b/library/Icinga/Web/Form.php index 75357e2fb..8d75a9df3 100644 --- a/library/Icinga/Web/Form.php +++ b/library/Icinga/Web/Form.php @@ -665,6 +665,14 @@ class Form extends Zend_Form public function isValidPartial(array $formData) { $this->create($formData); + + // Ensure that disabled elements are not overwritten (http://www.zendframework.com/issues/browse/ZF-6909) + foreach ($this->getElements() as $name => $element) { + if ($element->getAttrib('disabled')) { + $formData[$name] = $element->getValue(); + } + } + return parent::isValidPartial($formData); } @@ -678,6 +686,14 @@ class Form extends Zend_Form public function isValid($formData) { $this->create($formData); + + // Ensure that disabled elements are not overwritten (http://www.zendframework.com/issues/browse/ZF-6909) + foreach ($this->getElements() as $name => $element) { + if ($element->getAttrib('disabled')) { + $formData[$name] = $element->getValue(); + } + } + return parent::isValid($formData); }