]> git.mxchange.org Git - shipsimu.git/blobdiff - application/ship-simu/main/commands/web/class_WebShipsimuRegisterCommand.php
CAPTCHA now works in registration form
[shipsimu.git] / application / ship-simu / main / commands / web / class_WebShipsimuRegisterCommand.php
index 0940b79630a8c71dc65494c68983f9b873ef75b6..3a45e7634474f38bfc4f804465247c14580fdafe 100644 (file)
@@ -55,15 +55,6 @@ class WebShipsimuRegisterCommand 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();
-
-               // @TODO Add some more pre/post filters to the controller
-               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('email_validator'));
-               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_validator'));
-               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('password_validator'));
-               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('rules_accepted_filter'));
-
                // Return the prepared instance
                return $commandInstance;
        }
@@ -77,7 +68,7 @@ class WebShipsimuRegisterCommand extends BaseCommand implements Commandable {
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // First get a UserRegistration instance
-               $registerInstance = ObjectFactory::createObjectByConfiguredName('user_registration');
+               $registerInstance = ObjectFactory::createObjectByConfiguredName('user_registration_class');
 
                // First set request and response instance
                $registerInstance->setRequestInstance($requestInstance);
@@ -99,6 +90,34 @@ class WebShipsimuRegisterCommand extends BaseCommand implements Commandable {
                // Redirect or login after registration
                $registerInstance->doPostAction();
        }
+
+       /**
+        * 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 some more pre/post filters to the controller
+        */
+       public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) {
+               // Validate email address (if configured: check on double email addresses)
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('email_validator_class'));
+
+               // Validate username and check if it does not exist
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_validator_class'));
+
+               // Validate if username is "guest" and not taken
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_is_guest_class'));
+
+               // Validate if password is set
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('password_validator_class'));
+
+               // Check if rules where accepted
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('rules_accepted_class'));
+
+               // Validate CAPTCHA input
+               $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('captcha_register_verifier_class'));
+       }
 }
 
 // [EOF]