/**
* Send forgot email
* @return bool
*/
public function sendForgotEmail()
{
/** @var Mailer $mailer */
/** @var Message $message */
/** @var \amnah\yii2\user\models\UserToken $userToken */
if ($this->validate()) {
// get user
$user = $this->getUser();
// calculate expireTime
$expireTime = $this->module->resetExpireTime;
$expireTime = $expireTime ? gmdate("Y-m-d H:i:s", strtotime($expireTime)) : null;
// create userToken
$userToken = $this->module->model("UserToken");
$userToken = $userToken::generate($user->id, $userToken::TYPE_PASSWORD_RESET, null, $expireTime);
// modify view path to module views
$mailer = Yii::$app->mailer;
$oldViewPath = $mailer->viewPath;
$mailer->viewPath = $this->module->emailViewPath;
// send email
$subject = Yii::$app->id . " - " . Yii::t("user", "Forgot password");
$result = $mailer->compose('forgotPassword', compact("subject", "user", "userToken"))->setTo($user->email)->setSubject($subject)->send();
// restore view path and return result
$mailer->viewPath = $oldViewPath;
return $result;
}
return false;
}