/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = User::find()->with('info'); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'role', $this->role]); return $dataProvider; }
/** * @param string $key password recovery key. * @throws Exception if can't update model. * @return bool */ public function resetPassword($key) { /** @var User $user */ $user = User::find()->where(['recoveryKey' => $key])->one(); if (!$user || !$this->validate()) { return false; } $user->password = $user->passwordToHash($this->password); if (!$user->validate(['password'])) { $this->addErrors($user->getErrors()); return false; } $user->recoveryKey = null; $user->saveOrPanic(); // Auto login Yii::$app->user->login($user); return true; }
/** * Find records * @param array|string $parameters * @return multitype:\App\Core\Models\User */ public function find($parameters = null) { return User::find($parameters); }