diff --git a/app/forms/Login.php b/app/forms/Login.php index 9d04a62..08d9e51 100644 --- a/app/forms/Login.php +++ b/app/forms/Login.php @@ -30,11 +30,6 @@ class Login extends Form 'placeholder' => 'Username/Email', )); - $validator = new EmailValidator(array( - 'message' => 'The e-mail is not valid', - )); - $email->addValidator($validator); - $this->add($email); // Password diff --git a/app/library/Auth/Auth.php b/app/library/Auth/Auth.php index faecb4a..3f76c88 100644 --- a/app/library/Auth/Auth.php +++ b/app/library/Auth/Auth.php @@ -12,13 +12,19 @@ class Auth extends Component */ protected $_session_key = 'auth'; - public function login($email, $password) + /** + * Login using email/user + password combination. + * + * @param string $email_username + * @param string $password + * @return bool + */ + public function login($email_username, $password) { - // Look for a user with this email. - $user = User::findFirstByEmail($email); + // Look for a user with this username/email. + $user = User::findFirstByUsernameOrEmail($email_username); if ($user) { - // Verify password $hash = $user->getPassword(); if (strlen($hash) > 1 && password_verify($password, $hash)) { diff --git a/app/models/Data/User.php b/app/models/Data/User.php index f33a6ef..4e9b26a 100644 --- a/app/models/Data/User.php +++ b/app/models/Data/User.php @@ -126,4 +126,18 @@ class User extends Model $this->password = $password; return $this; } + + /** + * Find the first user by Username or Email + * + * @param string $value + * @return User|bool + */ + static public function findFirstByUsernameOrEmail($value) + { + return self::findFirst([ + "email = :v: OR username = :v:", + "bind" => [ 'v' => $value ] + ]); + } }