/** * Authenticates the password. * This is the 'authenticate' validator as declared in rules(). * returning true false does not stops proceeding to action. to stop add error to attribute. */ public function authenticate($attribute, $params) { if (!$this->hasErrors()) { $this->_identity = new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); switch ($this->_identity->errorCode) { case UserIdentity::ERROR_NONE: $duration = $this->rememberMe ? Yii::app()->controller->module->rememberMeTime : 0; Yii::app()->user->login($this->_identity, $duration); AppCommon::mergeCookieAndDbCart(); //on login merge the db and cookie carts break; case UserIdentity::ERROR_EMAIL_INVALID: $this->addError("username", UserModule::t("Email is incorrect.")); break; case UserIdentity::ERROR_STATUS_NOTACTIV: $this->addError("username", UserModule::t("You account is not activated.")); break; case UserIdentity::ERROR_STATUS_BAN: $this->addError("username", UserModule::t("You account is blocked.")); break; case UserIdentity::ERROR_PASSWORD_INVALID: $this->addError("password", UserModule::t("Password is incorrect.")); break; } if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) { return true; } else { return false; } } }