Esempio n. 1
0
 /**
  * @param $token
  * @return bool
  */
 public function isTokenValid(CsrfToken $token)
 {
     if (!$this->storage->hasToken($token->getId())) {
         return false;
     }
     return $this->storage->getToken($token->getId()) == $token->getValue();
 }
Esempio n. 2
0
 /**
  * @param $token
  * @return bool
  */
 public function verifyEmail($token)
 {
     $transaction = Yii::app()->getDb()->beginTransaction();
     try {
         $tokenModel = $this->tokenStorage->get($token, UserToken::TYPE_EMAIL_VERIFY);
         if (null === $tokenModel) {
             Yii::app()->eventManager->fire(UserEvents::FAILURE_EMAIL_CONFIRM, new UserEmailConfirmEvent($token));
             return false;
         }
         $userModel = User::model()->active()->findByPk($tokenModel->user_id);
         if (null === $userModel) {
             Yii::app()->eventManager->fire(UserEvents::FAILURE_EMAIL_CONFIRM, new UserEmailConfirmEvent($token));
             return false;
         }
         $userModel->email_confirm = User::EMAIL_CONFIRM_YES;
         if ($this->tokenStorage->activate($tokenModel) && $userModel->save()) {
             Yii::app()->eventManager->fire(UserEvents::SUCCESS_EMAIL_CONFIRM, new UserEmailConfirmEvent($token, $userModel));
             $transaction->commit();
             return true;
         }
     } catch (Exception $e) {
         $transaction->rollback();
         Yii::app()->eventManager->fire(UserEvents::FAILURE_EMAIL_CONFIRM, new UserEmailConfirmEvent($token));
     }
     return false;
 }
 /**
  * Отправить письмо для подтверждения email:
  *
  * @param integer $id - ID пользователя
  *
  * @throws CHttpException
  *
  * @return void
  */
 public function actionVerifySend($id = null)
 {
     Yii::app()->getRequest()->getIsAjaxRequest() === true || $this->badRequest();
     if ($id === null || ($user = $this->loadModel($id)) === null) {
         throw new CHttpException(404, Yii::t('UserModule.user', 'requested page was not found!'));
     } elseif ($user->email_confirm) {
         return $this->badRequest();
     }
     $tokenStorage = new TokenStorage();
     if ($token = $tokenStorage->createEmailVerifyToken($user)) {
         Yii::app()->notify->send($user, Yii::t('UserModule.user', 'Email verification'), '//user/email/needEmailActivationEmail', array('token' => $token));
         Yii::app()->ajax->success(Yii::t('UserModule.user', 'Sent!'));
     }
     Yii::app()->ajax->failure();
 }
Esempio n. 4
0
 public function refreshToken()
 {
     $this->token = $this->token_refresher->refreshToken($this->token);
     $this->token_storage->saveToken($this->token);
 }