]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/filter/auth/class_UserAuthFilter.php
User class renamed to Member and it's interface
[shipsimu.git] / inc / classes / main / filter / auth / class_UserAuthFilter.php
index dac1ebc09205806a17c3b6baa386df245a2992d9..25641dc3b90b6debc00e26d57d685d303c021857 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @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
  *
@@ -23,7 +23,7 @@
  */
 class UserAuthFilter extends BaseFilter implements Filterable {
        // Exception constants
-       const EXCEPTION_AUTH_DATA_INVALID = 0x0a0;
+       const EXCEPTION_AUTH_DATA_INVALID = 0x1b0;
 
        /**
         * The login method we shall choose
@@ -106,13 +106,19 @@ class UserAuthFilter extends BaseFilter implements Filterable {
                        throw new UserAuthorizationException($this, self::EXCEPTION_AUTH_DATA_INVALID);
                } // END - if
 
-               // Now, try to get a user instance
-               $userInstance = User::createUserByUserName($authLogin);
+               // Now, try to get a user or guest instance
+               if ($authLogin == $this->getConfigInstance()->readConfig('guest_login_user')) {
+                       // Guest login!
+                       $userInstance = Guest::createGuestByUserName($authLogin);
+               } else {
+                       // Regular user account
+                       $userInstance = Member::createUserByUserName($authLogin);
+               }
 
                // Is the password correct?
                if ($userInstance->getPasswordHash() !== $authHash) {
                        // Mismatching password
-                       throw new UserPasswordMismatchException(array($this, $userInstance), User::EXCEPTION_USER_PASS_MISMATCH);
+                       throw new UserPasswordMismatchException(array($this, $userInstance), BaseUser::EXCEPTION_USER_PASS_MISMATCH);
                } // END - if
 
                // Remember auth and user instances in registry