From a687e6f58c6b329de51a1b9f06af5fcef4e3f3af Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Fri, 21 Feb 2014 00:57:29 +0400 Subject: [PATCH] Validate login data only of there are no other errors --- apps/advanced/common/models/LoginForm.php | 12 +++++++----- apps/basic/models/LoginForm.php | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/advanced/common/models/LoginForm.php b/apps/advanced/common/models/LoginForm.php index 07ae0b2..ec27a5a 100644 --- a/apps/advanced/common/models/LoginForm.php +++ b/apps/advanced/common/models/LoginForm.php @@ -23,10 +23,10 @@ class LoginForm extends Model return [ // username and password are both required [['username', 'password'], 'required'], - // password is validated by validatePassword() - ['password', 'validatePassword'], // rememberMe must be a boolean value ['rememberMe', 'boolean'], + // password is validated by validatePassword() + ['password', 'validatePassword'], ]; } @@ -36,9 +36,11 @@ class LoginForm extends Model */ public function validatePassword() { - $user = $this->getUser(); - if (!$user || !$user->validatePassword($this->password)) { - $this->addError('password', 'Incorrect username or password.'); + if (!$this->hasErrors()) { + $user = $this->getUser(); + if (!$user || !$user->validatePassword($this->password)) { + $this->addError('password', 'Incorrect username or password.'); + } } } diff --git a/apps/basic/models/LoginForm.php b/apps/basic/models/LoginForm.php index d536443..76cf1de 100644 --- a/apps/basic/models/LoginForm.php +++ b/apps/basic/models/LoginForm.php @@ -24,10 +24,10 @@ class LoginForm extends Model return [ // username and password are both required [['username', 'password'], 'required'], - // password is validated by validatePassword() - ['password', 'validatePassword'], // rememberMe must be a boolean value ['rememberMe', 'boolean'], + // password is validated by validatePassword() + ['password', 'validatePassword'], ]; } @@ -37,10 +37,12 @@ class LoginForm extends Model */ public function validatePassword() { - $user = $this->getUser(); + if (!$this->hasErrors()) { + $user = $this->getUser(); - if (!$user || !$user->validatePassword($this->password)) { - $this->addError('password', 'Incorrect username or password.'); + if (!$user || !$user->validatePassword($this->password)) { + $this->addError('password', 'Incorrect username or password.'); + } } }