*
* @author Roland Haeder <webmaster@ship-simu.org>
* @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
*
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
-
- // Set part description
- $this->setObjectDescription("Default controller with news");
-
- // Create unique ID number
- $this->generateUniqueId();
}
/**
// Set the command resolver
$controllerInstance->setResolverInstance($resolverInstance);
- // Add some filters to this controller
+ // User auth filter
$controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_class'));
+
+ // User update filter
+ $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_update_class'));
+
+ // News fetcher filter
$controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_class'));
+
+ // News proccess/display-preparation
$controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_class'));
+ /* @todo: Add some filters to this controller */
+
// Return the prepared instance
return $controllerInstance;
}
* @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();