Fix Preferences writing empty values

refs #4525
This commit is contained in:
Jannis Moßhammer 2013-08-21 09:54:40 +02:00 committed by Eric Lippmann
parent 9cd4c2f856
commit dbdfd09796
1 changed files with 7 additions and 2 deletions

View File

@ -76,14 +76,13 @@ class PreferenceController extends BasePreferenceController
$form = new GeneralForm();
$form->setConfiguration(IcingaConfig::app());
$form->setRequest($this->getRequest());
if ($form->isSubmittedAndValid()) {
$preferences = $form->getPreferences();
$userPreferences = $this->getRequest()->getUser()->getPreferences();
$userPreferences->startTransaction();
foreach ($preferences as $key => $value) {
if ($value === '') {
if (!$value) {
$userPreferences->remove($key);
} else {
$userPreferences->set($key, $value);
@ -92,6 +91,12 @@ class PreferenceController extends BasePreferenceController
try {
$userPreferences->commit();
$this->view->success = true;
// recreate form to show new values
$form = new GeneralForm();
$form->setConfiguration(IcingaConfig::app());
$form->setRequest($this->getRequest());
} catch (Exception $e) {
$this->view->exceptionMessage = $e->getMessage();
}