skeeks\cms\models\User::findByPasswordResetToken PHP Method

findByPasswordResetToken() public static method

Finds user by password reset token
public static findByPasswordResetToken ( string $token ) : static | null
$token string password reset token
return static | null
    public static function findByPasswordResetToken($token)
    {
        if (!static::isPasswordResetTokenValid($token)) {
            return null;
        }
        return static::findOne(['password_reset_token' => $token, 'active' => Cms::BOOL_Y]);
    }

Usage Example

Exemplo n.º 1
0
 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]);
 }