예제 #1
0
 /**
  * @return User $user
  */
 private function getUser()
 {
     if (!$this->user) {
         $this->user = User::findIdentityByEmail($this->email);
     }
     return $this->user;
 }
예제 #2
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findIdentityByEmail($this->email);
     }
     return $this->_user;
 }
예제 #3
0
 /**
  * Si le formulaire est valide, on crée une clé d'identification & on expédie à l'utilisateur un mail de ré-initialisation
  *
  * @return bool
  */
 public function processRequest()
 {
     if ($this->validate()) {
         try {
             /** @var User $user */
             if (!($user = User::findIdentityByEmail($this->email))) {
                 // CHECK_SECURITY
                 // On ne devrait pas avoir ce cas là puisque l'existence du mail dans la base de données a été vérifiée dans lr formulaire
                 // Il s'agit sans doute d'une tentative de piratage
                 return false;
             }
             $user->reset_password_token = Yii::$app->getSecurity()->generateRandomString();
             if (!$user->save()) {
                 Yii::error('Erreur sur $user->save()', __METHOD__);
                 return false;
             }
             Yii::$app->mailer->compose('/mail/askResetPassword', compact('user'))->setFrom(Yii::$app->params['adminEmail'])->setTo(h::safeRecipientEmail($user->email))->setSubject(HUsers::t('titles', 'Your password reset request'))->send();
             return true;
         } catch (Exception $x) {
             Yii::error($x->getMessage(), __METHOD__);
             return false;
         }
     } else {
         return false;
     }
 }
예제 #4
0
 /**
  * Si on met à jour un email depuis le backend admin, il faut s'assurer que la nouvelle adresse mail sn'est pas déjà prise
  *
  * @param string $attribute the attribute currently being validated
  */
 public function validateUpdatedEmail($attribute)
 {
     if (!$this->hasErrors()) {
         if ($newEmail = hArray::getValue($this->getDirtyAttributes(), 'email')) {
             if (User::findIdentityByEmail($newEmail)) {
                 $this->addError($attribute, HUsers::t('messages', 'This user already exists'));
             }
         }
     }
 }