public function actionResetPassword()
{
$rr = new RequestResponse();
$token = \Yii::$app->request->get('token');
if (!$token) {
return $this->goHome();
}
$className = \Yii::$app->user->identityClass;
$user = $className::findByPasswordResetToken($token);
if ($user) {
$password = \Yii::$app->getSecurity()->generateRandomString(10);
$user->setPassword($password);
$user->generatePasswordResetToken();
if ($user->save()) {
\Yii::$app->mailer->view->theme->pathMap = ArrayHelper::merge(\Yii::$app->mailer->view->theme->pathMap, ['@app/mail' => ['@skeeks/cms/mail-templates']]);
\Yii::$app->mailer->compose('@app/mail/new-password', ['user' => $user, 'password' => $password])->setFrom([\Yii::$app->cms->adminEmail => \Yii::$app->cms->appName])->setTo($user->email)->setSubject('Новый пароль для ' . \Yii::$app->cms->appName)->send();
$rr->success = true;
$rr->message = 'Новый пароль отправлен на ваш e-mail';
}
} else {
$rr->message = 'Ошибка, скорее всего данная ссылка уже устарела';
}
return $this->render('reset-password', (array) $rr);
}