/** * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findByLogin($this->username); } return $this->_user; }
/** * Sends password recovery instructions via e-mail. * @return bool */ public function send() { if (!$this->validate()) { return false; } /** @var User $user */ $user = User::findByLogin($this->email); $user->recoveryKey = Yii::$app->getSecurity()->generateRandomString(32); $user->save(false); \Yii::$app->mailer->compose('@app/auth/mail/recovery', ['user' => $user, 'url' => Url::to(['/auth/recovery/code', 'code' => $user->recoveryKey], true)])->setTo($user->email)->send(); return true; }