From: Roland Haeder Date: Mon, 6 Apr 2015 23:13:02 +0000 (+0200) Subject: Introduced genericHanleRequestLoginFailedRedirect(). X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=b75d59b0b03c28c0c142df99bf70692f9d2b9086 Introduced genericHanleRequestLoginFailedRedirect(). Signed-off-by: Roland Häder --- diff --git a/inc/classes/main/controller/class_BaseController.php b/inc/classes/main/controller/class_BaseController.php index 3b0d24c1..d195c9e7 100644 --- a/inc/classes/main/controller/class_BaseController.php +++ b/inc/classes/main/controller/class_BaseController.php @@ -84,6 +84,52 @@ class BaseController extends BaseFrameworkSystem implements Registerable { $responseInstance->flushBuffer(); } + /** + * Handles the given request and response, redirects to login_failed if + * UserAuthorizationException is thrown. + * + * @param $requestInstance An instance of a request class + * @param $responseInstance An instance of a response class + * @return void + */ + public function genericHanleRequestLoginFailedRedirect (Requestable $requestInstance, Responseable $responseInstance) { + // Get the "form action" + $formAction = $requestInstance->getRequestElement('form'); + + // Get command instance from resolver + $commandInstance = $this->getResolverInstance()->resolveCommand($formAction); + + // Add more filters by the command + $commandInstance->addExtraFilters($this, $requestInstance); + + // Try to run the pre filters, if auth exceptions come through redirect here + try { + // Run the pre filters + $this->executePreFilters($requestInstance, $responseInstance); + } catch (UserAuthorizationException $e) { + // Redirect to main page + $responseInstance->redirectToConfiguredUrl('login_failed'); + + // Exit here + exit(); + } + + /* + * Is the request still valid? Post filters shall only be executed of + * the request is valid + */ + if ($requestInstance->isRequestValid()) { + // Execute the command + $commandInstance->execute($requestInstance, $responseInstance); + + // Execute *very* generic ppost filters + $this->executePostFilters($requestInstance, $responseInstance); + } // END - if + + // Flush the buffer out + $responseInstance->flushBuffer(); + } + /** * Private method to initialize a given filter chain * diff --git a/inc/classes/main/controller/html/form/class_HtmlDoFormController.php b/inc/classes/main/controller/html/form/class_HtmlDoFormController.php index 38ae3c2a..2dc6b884 100644 --- a/inc/classes/main/controller/html/form/class_HtmlDoFormController.php +++ b/inc/classes/main/controller/html/form/class_HtmlDoFormController.php @@ -60,39 +60,8 @@ class HtmlDoFormController extends BaseController implements Controller { * @return void */ public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) { - // Get the "form action" - $formAction = $requestInstance->getRequestElement('form'); - - // Get command instance from resolver - $commandInstance = $this->getResolverInstance()->resolveCommand($formAction); - - // Add more filters by the command - $commandInstance->addExtraFilters($this, $requestInstance); - - // Try to run the pre filters, if auth exceptions come through redirect here - try { - // Run the pre filters - $this->executePreFilters($requestInstance, $responseInstance); - } catch (UserAuthorizationException $e) { - // Redirect to main page - $responseInstance->redirectToConfiguredUrl('login_failed'); - - // Exit here - exit(); - } - - // Is the request still valid? Post filters shall only be executed of - // the request is valid - if ($requestInstance->isRequestValid()) { - // Execute the command - $commandInstance->execute($requestInstance, $responseInstance); - - // Execute *very* generic ppost filters - $this->executePostFilters($requestInstance, $responseInstance); - } - - // Flush the buffer out - $responseInstance->flushBuffer(); + // Generic handling with redirect to 'login_failed' + $this->genericHanleRequestLoginFailedRedirect($requestInstance, $responseInstance); } }