/** * @return User */ public function getUser() { if ($this->_user === null) { $this->_user = User::findUserByEmail($this->email); } return $this->_user; }
/** @inheritdoc */ public function rules() { return ['emailTrim' => ['email', 'filter', 'filter' => 'trim'], 'emailRequired' => ['email', 'required'], 'emailPattern' => ['email', 'email'], 'emailExist' => ['email', 'exist', 'targetClass' => $this->module->modelMap['User'], 'message' => Yii::t('users', 'There is no user with this email address')], 'emailUnconfirmed' => ['email', function ($attribute) { $this->user = User::findUserByEmail($this->email); if ($this->user !== null && $this->module->enableConfirmation && !$this->user->isConfirmed) { $this->addError($attribute, Yii::t('users', 'You need to confirm your email address')); } if ($this->user->isBlocked) { $this->addError($attribute, Yii::t('users', 'Your account has been blocked')); } }], 'passwordRequired' => ['password', 'required'], 'passwordLength' => ['password', 'string', 'min' => 6]]; }
/** * Tries to find user or create a new one. * * @param Account $account * * @return User|bool False when can't create user. */ protected static function fetchUser(Account $account) { $user = User::findUserByEmail($account->email); if (null !== $user) { return $user; } $user = Yii::createObject(['class' => User::className(), 'scenario' => User::SCENARIO_CONNECT, 'username' => $account->username, 'email' => $account->email]); if (!$user->validate(['email'])) { $account->email = null; } if (!$user->validate(['username'])) { $account->username = null; } return $user->create() ? $user : false; }