/** * @return User */ public function getUser() { if ($this->_user === null) { $this->_user = $this->finder->findUserByEmail($this->email); } return $this->_user; }
/** @inheritdoc */ public function rules() { return ['emailTrim' => ['email', 'filter', 'filter' => 'trim'], 'emailRequired' => ['email', 'required'], 'emailPattern' => ['email', 'email'], 'emailExist' => ['email', 'exist', 'targetClass' => $this->module->modelMap['User'], 'message' => \Yii::t('user', 'There is no user with this email address')], 'emailUnconfirmed' => ['email', function ($attribute) { $this->user = $this->finder->findUserByEmail($this->email); if ($this->user !== null && $this->module->enableConfirmation && !$this->user->getIsConfirmed()) { $this->addError($attribute, \Yii::t('user', 'You need to confirm your email address')); } }], 'passwordRequired' => ['password', 'required'], 'passwordLength' => ['password', 'string', 'min' => 6]]; }
/** * Creates new confirmation token and sends it to the user. * * @return bool */ public function resend() { if (!$this->validate()) { return false; } $user = $this->finder->findUserByEmail($this->email); if ($user instanceof User && !$user->isConfirmed) { /** @var Token $token */ $token = \Yii::createObject(['class' => Token::className(), 'user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); $token->save(false); $this->mailer->sendConfirmationMessage($user, $token); } \Yii::$app->session->setFlash('info', \Yii::t('user', 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.')); return true; }
/** * Sends recovery message. * * @return bool */ public function sendRecoveryMessage() { if (!$this->validate()) { return false; } $user = $this->finder->findUserByEmail($this->email); if ($user instanceof User) { /** @var Token $token */ $token = \Yii::createObject(['class' => Token::className(), 'user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]); if (!$token->save(false)) { return false; } if (!$this->mailer->sendRecoveryMessage($user, $token)) { return false; } } \Yii::$app->session->setFlash('info', \Yii::t('user', 'An email has been sent with instructions for resetting your password')); return true; }