/** * @return array the validation rules. */ public function rules() { return [[['username', 'email', 'password'], 'required'], ['email', 'email'], [['username'], 'string', 'max' => 30], [['password', 'password_repeat'], 'string', 'max' => 20], [['first_name', 'last_name'], 'string', 'max' => 50], ['password', function ($attribute, $params) { if ($this->password != $this->password_repeat) { $this->addError($attribute, 'Введенные пароли не совпадают'); } }], [['username', 'email'], 'unique', 'targetClass' => users::className()], ['verifyCode', 'captcha'], [['avatar'], 'image', 'maxSize' => 1024 * 1024, 'tooBig' => 'Максимальный размер файла 1Мб']]; }
/** * @return array the validation rules. */ public function rules() { return [[['username', 'email'], 'required'], ['email', 'email'], [['username'], 'string', 'max' => 30], [['password', 'password_repeat'], 'string', 'max' => 20], [['first_name', 'last_name'], 'string', 'max' => 50], ['notifications', 'integer'], ['password', function ($attribute, $params) { if ($this->password != $this->password_repeat) { $this->addError($attribute, 'Введенные пароли не совпадают'); } }], [['username', 'email'], 'unique', 'targetClass' => users::className(), 'filter' => ['not', ['id' => Yii::$app->user->identity->id]]], [['avatar'], 'image', 'maxSize' => 1024 * 1024, 'tooBig' => 'Максимальный размер файла 1Мб']]; }
public function __construct($token, $config = []) { if (empty($token) || !is_string($token)) { throw new InvalidParamException('Неверный token сброса пароля'); } $this->_user = users::findOne(['forgotten_password_code' => $token]); if (!$this->_user) { throw new InvalidParamException('Неверный token сброса пароля'); } parent::__construct($config); }
public function passReset() { $user = users::findOne(['active' => Users::STATUS_ACTIVE, 'username' => $this->username, 'email' => $this->email]); if ($user) { if (empty($user->forgotten_password_code)) { $user->forgotten_password_code = Yii::$app->security->generateRandomString(); } if ($user->save()) { return \Yii::$app->mailer->compose('passReset', ['user' => $user])->setFrom([Yii::$app->params['adminEmail'] => 'Sportforecast'])->setTo($user->email)->setSubject('Восстановление пароля')->send(); } } return false; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = users::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'created_on' => $this->created_on, 'last_login' => $this->last_login, 'active' => $this->active, 'notifications' => $this->notifications]); $query->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'password', $this->password])->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'forgotten_password_code', $this->forgotten_password_code])->andFilterWhere(['like', 'first_name', $this->first_name])->andFilterWhere(['like', 'last_name', $this->last_name])->andFilterWhere(['like', 'avatar', $this->avatar])->andFilterWhere(['like', 'auth_key', $this->auth_key]); return $dataProvider; }