/**
  * Send password reset email
  * @return boolean
  */
 public function sendEmail()
 {
     $user = User::findOne(['active' => true, 'email' => $this->email]);
     if ($user !== null) {
         return $user->sendResetPasswordEmail();
     }
     return false;
 }
Example #2
0
 /**
  * Validation rules
  * @return array
  */
 public function rules()
 {
     return [[['email', 'password', 'verifyCode'], 'required'], ['email', 'email'], ['password', 'string', 'min' => 4], ['confirm', 'compare', 'compareAttribute' => 'password'], [['firstName', 'lastName'], 'string', 'max' => 50], ['verifyCode', 'captcha'], ['mailing', 'boolean'], ['email', function ($attribute, $params) {
         if (User::find()->where(['email' => $this->email])->count() > 0) {
             $this->addError($attribute, Yii::t('user', 'The entered e-mail is already in use.'));
         }
     }]];
 }
Example #3
0
 /**
  * Constructor
  * @param string $token 
  * @param array $config 
  * @return void
  */
 public function __construct($token, $config = [])
 {
     if (empty($token) || !is_string($token)) {
         throw new InvalidParamException('Password reset token cannot be blank.');
     }
     $this->_user = User::findByPasswordResetToken($token);
     if (!$this->_user) {
         throw new InvalidParamException('Wrong password reset token.');
     }
     parent::__construct($config);
 }
Example #4
0
 /**
  * E-mail confirm
  * @param string $token E-mail confirm token
  * @return void
  */
 public function actionConfirm($token)
 {
     $user = User::findByConfirmToken($token);
     if (!$user) {
         throw new InvalidParamException(Yii::t('user', 'Link invalid. Perhaps, e-mail has already been confirmed or the waiting period has expired.'));
     }
     $user->confirmed = true;
     $user->removeConfirmToken();
     if ($user->save()) {
         Yii::$app->getSession()->setFlash('success', Yii::t('user', 'Your e-mail is successfully confirmed.'));
     } else {
         Yii::$app->getSession()->setFlash('error', Yii::t('user', 'An error occurred while trying to confirm the e-mail.'));
     }
     return $this->redirect(['settings/index']);
 }