X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcontroller%2Flogin%2Fclass_WebLoginAreaController.php;h=4e82ce10a808eed445b076600426eead9e6cd0eb;hb=558b417d946a1a6cee5278e86b5ed042afb3aad6;hp=34893a10f9cf652452e98b0192e1c18ff9c98fc0;hpb=0e9b4c76519b80ed1369936f56a68cea65aff56d;p=mailer.git diff --git a/inc/classes/main/controller/login/class_WebLoginAreaController.php b/inc/classes/main/controller/login/class_WebLoginAreaController.php index 34893a10f9..4e82ce10a8 100644 --- a/inc/classes/main/controller/login/class_WebLoginAreaController.php +++ b/inc/classes/main/controller/login/class_WebLoginAreaController.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -30,12 +30,6 @@ class WebLoginAreaController extends BaseController implements Controller { protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Set part description - $this->setObjectDescription("Default controller with news"); - - // Create unique ID number - $this->generateUniqueId(); } /** @@ -51,10 +45,19 @@ class WebLoginAreaController extends BaseController implements Controller { // Set the command resolver $controllerInstance->setResolverInstance($resolverInstance); - // Add some filters to this controller - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_class')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_class')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_class')); + // User auth filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter')); + + // User update filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_update_filter')); + + // News fetcher filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter')); + + // News proccess/display-preparation + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter')); + + /* @todo: Add some filters to this controller */ // Return the prepared instance return $controllerInstance; @@ -68,11 +71,20 @@ class WebLoginAreaController extends BaseController implements Controller { * @return void */ public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) { - // Run the pre filters - $this->executePreFilters($requestInstance, $responseInstance); - // Get the command instance from the resolver by sending a request instance to the resolver - $commandInstance = $this->getResolverInstance()->resolvCommandByRequest($requestInstance); + $commandInstance = $this->getResolverInstance()->resolveCommandByRequest($requestInstance); + + // 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_url'); + } // This request was valid! :-D $requestInstance->requestIsValid();