]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/filter/validator/class_UserNameValidatorFilter.php
Username filter begun with basic checks
[shipsimu.git] / inc / classes / main / filter / validator / class_UserNameValidatorFilter.php
index efc3fecafeee65730e90d983803a77f9b5f15ba3..9ec225165648d120cc765c2c66b7b85212b51fc8 100644 (file)
@@ -66,8 +66,47 @@ class UserNameValidatorFilter extends BaseFrameworkSystem implements Filterable
         * @return      void
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
-               // Implement this!
-               $this->partialStub("Please implement this method.");
+               // Get username from request
+               $userName = $requestInstance->getRequestElement("username");
+
+               // Is the username set?
+               if (is_null($userName)) {
+                       // Not found in form so stop the filtering process
+                       $requestInstance->requestIsValid(false);
+
+                       // Set a message for the response
+                       $responseInstance->addFatalMessage('username_unset');
+
+                       // Abort here
+                       return false;
+               } elseif (empty($userName)) {
+                       // Empty field!
+                       $requestInstance->requestIsValid(false);
+
+                       // Set a message for the response
+                       $responseInstance->addFatalMessage('username_empty');
+
+                       // Abort here
+                       return false;
+               } elseif (!$this->ifUserNameIsValid($userName)) {
+                       // Regular expression check failed!
+                       $requestInstance->requestIsValid(false);
+
+                       // Set a message for the response
+                       $responseInstance->addFatalMessage('username_invalid');
+
+                       // Abort here
+                       return false;
+               } elseif (!$this->ifUserNameIsTaken($userName)) {
+                       // Username is already taken
+                       $requestInstance->requestIsValid(false);
+
+                       // Set a message for the response
+                       $responseInstance->addFatalMessage('username_taken');
+
+                       // Abort here
+                       return false;
+               }
        }
 }