X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fship-simu%2Fmain%2Fcommands%2Fweb%2Fclass_WebShipsimuUserLoginCommand.php;h=add9a42eb8c60778c69b819b207048a275d36df8;hp=6a2ab504c3d6151643f56c378dcf52d2983f851c;hb=50d2890511eb23971eb4ee1e392748a42b066def;hpb=1cfec479b8c4a745b5b97683d22c8a431f9a3ee7 diff --git a/application/ship-simu/main/commands/web/class_WebShipsimuUserLoginCommand.php b/application/ship-simu/main/commands/web/class_WebShipsimuUserLoginCommand.php index 6a2ab50..add9a42 100644 --- a/application/ship-simu/main/commands/web/class_WebShipsimuUserLoginCommand.php +++ b/application/ship-simu/main/commands/web/class_WebShipsimuUserLoginCommand.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, 2009 Ship-Simu Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -31,12 +31,6 @@ class WebShipsimuUserLoginCommand extends BaseCommand implements Commandable { // Call parent constructor parent::__construct(__CLASS__); - // Set part description - $this->setObjectDescription("User login handling command for Ship-Simu"); - - // Create unique ID number - $this->generateUniqueId(); - // Clean up a little $this->removeNumberFormaters(); $this->removeSystemArray(); @@ -55,26 +49,6 @@ class WebShipsimuUserLoginCommand extends BaseCommand implements Commandable { // Set the resolver instance $commandInstance->setResolverInstance($resolverInstance); - // Get the controller instance from the resolver (breaks MVC pattern again) - $controllerInstance = $resolverInstance->getControllerInstance(); - - switch ($commandInstance->getConfigInstance()->readConfig('login_type')) { - case "username": // Login via username - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_verifier_class')); - break; - - case "email": // Login via email - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('email_verifier_class')); - break; - - default: // Wether username or email is set - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_email_verifier_class')); - break; - } - - /* @TODO Add more filters */ - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('password_verifier_class')); - // Return the prepared instance return $commandInstance; } @@ -103,7 +77,11 @@ class WebShipsimuUserLoginCommand extends BaseCommand implements Commandable { if ($loginInstance->ifLoginWasSuccessfull()) { // Try to redirect here try { - $responseInstance->redirectToConfiguredUrl('app_login_url'); + // Redirect... + $responseInstance->redirectToConfiguredUrl('app_login'); + + // Exit here + exit(); } catch (FrameworkException $e) { // Something went wrong here! $responseInstance->addFatalMessage($e->getMessage()); @@ -113,6 +91,37 @@ class WebShipsimuUserLoginCommand extends BaseCommand implements Commandable { $responseInstance->addFatalMessage('failed_user_login'); } } + + /** + * Adds extra filters to the given controller instance + * + * @param $controllerInstance A controller instance + * @param $requestInstance An instance of a class with an Requestable interface + * @return void + * @todo Add more filters + */ + public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { + // Which login type do we have? + switch ($this->getConfigInstance()->getConfigEntry('login_type')) { + case 'username': // Login via username + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_verifier_filter')); + break; + + case 'email': // Login via email + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('email_verifier_filter')); + break; + + default: // Wether username or email is set + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_email_verifier_filter')); + break; + } + + // Password verifier filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('password_verifier_filter')); + + // Add filter for CAPTCHA + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('captcha_user_verifier_filter')); + } } // [EOF]