skeeks\cms\controllers\AuthController::actionResetPassword PHP Method

actionResetPassword() public method

public actionResetPassword ( )
    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);
    }