From f5ebb06d8a1b42578d2e1ecd12cedbd5c58cf6c2 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Thu, 30 Jul 2015 15:39:51 +0200 Subject: [PATCH] QuickForm: be strict on setting request only once --- library/Director/Web/Form/QuickForm.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/Director/Web/Form/QuickForm.php b/library/Director/Web/Form/QuickForm.php index af267189..0deb86d6 100644 --- a/library/Director/Web/Form/QuickForm.php +++ b/library/Director/Web/Form/QuickForm.php @@ -4,6 +4,7 @@ namespace Icinga\Module\Director\Web\Form; use Icinga\Application\Icinga; use Icinga\Application\Modules\Module; +use Icinga\Exception\ProgrammingError; use Icinga\Web\Notification; use Icinga\Web\Request; use Icinga\Web\Url; @@ -155,6 +156,7 @@ abstract class QuickForm extends Zend_Form $element = $this->getElement(self::CSRF); } $element->setValue(CsrfToken::generate())->setIgnore(true); + return $this; } @@ -262,7 +264,7 @@ abstract class QuickForm extends Zend_Form public function handleRequest(Request $request = null) { if ($request !== null) { - $this->request = $request; + $this->setRequest($request); } $this->prepareElements(); @@ -354,6 +356,10 @@ abstract class QuickForm extends Zend_Form public function setRequest(Request $request) { + if ($this->request !== null) { + throw new ProgrammingError('Unable to set request twice'); + } + $this->request = $request; $this->onRequest(); return $this;