]> git.mxchange.org Git - shipsimu.git/blobdiff - application/ship-simu/main/login/class_ShipSimuUserLogin.php
Ship-Simu now has its own member/guest implementations
[shipsimu.git] / application / ship-simu / main / login / class_ShipSimuUserLogin.php
index 1e094cb86c45a44ebf7c33f724f99fdd4edf01e2..7ca65d2da16f8c757511972b76eaf339f29f9565 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
  *
@@ -68,10 +68,6 @@ class ShipSimuUserLogin extends BaseFrameworkSystem implements LoginableUser {
         * @param       $requestInstance        An instance of a Requestable class
         * @param       $responseInstance       An instance of a Responseable class
         * @return      void
-        * @throws      UserAuthMethodException If wether username nor email login
-        *                                                                              was detected
-        * @throws      MissingMethodException          If a method was not found in the
-        *                                                                              User class
         * @throws      UserPasswordMismatchException   If the supplied password did not
         *                                                                              match with the stored password
         * @todo        We need to add something here which will make more than one
@@ -83,33 +79,13 @@ class ShipSimuUserLogin extends BaseFrameworkSystem implements LoginableUser {
                $method = null;
                $data = "";
 
-               // Detect login method (username or email) and try to get a userinstance
-               if (!is_null($requestInstance->getRequestElement('username'))) {
-                       // Username found!
-                       $method = "createUserByUsername";
-                       $data = $requestInstance->getRequestElement('username');
-               } elseif (!is_null($requestInstance->getRequestElement('email'))) {
-                       // Email found!
-                       $method = "createUserByEmail";
-                       $data = $requestInstance->getRequestElement('email');
-               }
-
-               // Is a method detected?
-               if (is_null($method)) {
-                       // Then abort here
-                       throw new UserAuthMethodException($this, self::EXCEPTION_MISSING_METHOD);
-               } elseif (!method_exists($this->getConfigInstance()->readConfig('user_class'), $method)) {
-                       // The method is invalid!
-                       throw new MissingMethodException(array($this, $method), self::EXCEPTION_MISSING_METHOD);
-               }
-
                // Get a instance of the registry
                $userInstance = Registry::getRegistry()->getInstance('user');
 
                // Is there an instance?
                if (is_null($userInstance)) {
                        // Get a user instance
-                       $userInstance = call_user_func_array(array($this->getConfigInstance()->readConfig('user_class'), $method), array($data));
+                       $userInstance = Member::createMemberByRequest($requestInstance);
 
                        // Remember this new instance in registry
                        Registry::getRegistry()->addInstance($userInstance);
@@ -118,7 +94,7 @@ class ShipSimuUserLogin extends BaseFrameworkSystem implements LoginableUser {
                // Is the password correct?
                if (!$userInstance->ifPasswordHashMatches($requestInstance)) {
                        // 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
 
                // ToDo place
@@ -165,7 +141,7 @@ class ShipSimuUserLogin extends BaseFrameworkSystem implements LoginableUser {
                        $userInstance = Registry::getRegistry()->getInstance('user');
 
                        // Get a crypto helper and hash the password
-                       $this->hashedPassword = ObjectFactory::createObjectByConfiguredName('crypto_class')->hashPassword($plainPassword, $userInstance->getPasswordHash());
+                       $this->hashedPassword = ObjectFactory::createObjectByConfiguredName('crypto_class')->hashString($plainPassword, $userInstance->getPasswordHash());
 
                        // Store the hash back in the request
                        $this->getRequestInstance()->setRequestElement('pass_hash', $this->hashedPassword);