public function actionResetPassword()
{
$this->view->title = \Yii::t('app', 'Password recovery');
$this->layout = '@skeeks/cms/modules/admin/views/layouts/unauthorized.php';
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$token = \Yii::$app->request->get('token');
if (!$token) {
return $this->goHome();
}
$user = User::findByPasswordResetToken($token);
if ($user) {
$password = \Yii::$app->getSecurity()->generateRandomString(10);
$user->setPassword($password);
$user->generatePasswordResetToken();
if ($user->save(false)) {
\Yii::$app->mailer->setViewPath(\Yii::$app->cms->moduleCms()->basePath . '/mail');
\Yii::$app->mailer->compose('newPassword', ['user' => $user, 'password' => $password])->setFrom([\Yii::$app->cms->adminEmail => \Yii::$app->cms->appName])->setTo($user->email)->setSubject(\Yii::t('app', 'New password') . ' ' . \Yii::$app->cms->appName)->send();
$message = \Yii::t('app', 'New password sent to your e-mail');
}
} else {
$message = \Yii::t('app', 'Link outdated, try to request a password recovery again.');
}
return $this->render('reset-password', ['message' => $message]);
}