Ejemplo n.º 1
0
 /**
  * @param      $usernameOrEmail
  * @param      $password
  * @param bool $storeSession
  *
  * @return array
  */
 public function loginUser($usernameOrEmail, $password, $storeSession = false)
 {
     $this->clearSession();
     $userRecord = $this->_db->fetchOne(self::TABLE, ['username' => $usernameOrEmail]);
     if (empty($userRecord)) {
         $userRecord = $this->_db->fetchOne(self::TABLE, ['email' => $usernameOrEmail]);
     }
     if (empty($userRecord)) {
         return ['result' => false, 'msg' => 'Account doesn\'t exist'];
     }
     if (!$this->verifyPassword($password, $userRecord['password'])) {
         $this->failedLogin($userRecord);
         return ['result' => false, 'msg' => 'Invalid password'];
     }
     SessionStorage::setValue('user-logged-in', true);
     SessionStorage::setValue('username', $userRecord['username']);
     SessionStorage::setValue('user-email', $userRecord['email']);
     SessionStorage::setUserId($userRecord['id']);
     if ($storeSession) {
         $this->storeSession($userRecord);
     }
     return ['result' => true, 'msg' => "User {$userRecord['email']} logged in"];
 }