public function search($params) { $query = User::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'role' => $this->role, 'status' => $this->status, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'approve_newsletter' => $this->approve_newsletter]); $query->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'password', $this->password])->andFilterWhere(['like', 'auth_key', $this->auth_key])->andFilterWhere(['like', 'password_hash', $this->password_hash])->andFilterWhere(['like', 'password_reset_token', $this->password_reset_token])->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'phone', $this->phone]); return $dataProvider; }
/** * Поиск записей по переданным критериям. * @param array|null Массив с критериями для выборки. * @return ActiveDataProvider dataProvider с результатами поиска. */ public function search($params) { $query = User::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => Yii::$app->getModule('user')->recordsPerPage]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $this->addCondition($query, 'username', true); $this->addCondition($query, 'email', true); $this->addCondition($query, 'role'); $this->addCondition($query, 'status'); return $dataProvider; }
/** * @param $email * @param $key * @return \yii\web\Response */ public function actionActivation($email, $key) { if ($model = User::find()->where(['and', 'email = :email', 'auth_key = :auth_key'], [':email' => $email, ':auth_key' => $key])->inactive()->one()) { $model->setScenario('activation'); // В случае если запись с введеным e-mail-ом и ключом была найдена, обновляем её и оповещаем пользователя об успешной активации. if ($model->save(false)) { Yii::$app->session->setFlash('success', Yii::t('user', 'Ваша учётная запись была успешно активирована. Теперь вы можете авторизоватся, и полноценно использовать услуги сайта. Спасибо!')); } } else { // В случае если запись с введеным e-mail-ом и ключом не был найден, оповещаем пользователя об неудачной активации. Yii::$app->session->setFlash('danger', Yii::t('user', 'Неверный код активации или возмоможно аккаунт был уже ранее активирован. Проверьте пожалуйста правильность ссылки, или напишите администратору.')); } // Перенаправляем пользователя на главную страницу сайта. return $this->goHome(); }
public static function getAllLikeJsList() { $temp_js_list = ''; $users = User::find()->orderBy('username ASC')->select(['email', 'username', 'approve_newsletter'])->all(); foreach ($users as $user) { if ($user->email && $user->approve_newsletter) { $temp_js_list[$user->email] = $user->username; } } return $temp_js_list; }
public function actionGetHistoryForService() { $token = $this->getToken(); if ($token) { $user = User::find()->where('password_reset_token = :token', [':token' => $token])->one(); if (!empty($user)) { if (!empty($_POST['bill']) && !empty($_POST['service_id'])) { $service = Services::find()->where('id = :id', [':id' => $_POST['service_id']])->one(); if ($service) { $persAcc = PersonalAccount::find()->where('value = :value', [':value' => $_POST['bill']])->one(); if ($persAcc) { $result = ['status' => ['code' => 200, 'message' => 'ОК'], 'data' => ['tariff' => $service->tariff, 'tariff_measure' => $service->tariff_measure, 'history' => []]]; $history = PaymentData::find()->where('personal_acc_id = :personal_acc_id', [':personal_acc_id' => $persAcc->id])->andWhere('service_id = :service_id', [':service_id' => $_POST['service_id']])->all(); if ($history) { foreach ($history as $index => $payment) { $result['data']['history'][$index] = ['date' => "" . $payment->kvit_date, 'dept_end' => $payment->dept_end, 'dept_begin' => $payment->dept_begin, 'enrolled' => $payment->enrolled, 'paid' => $payment->paid, 'bill' => $_POST['bill']]; } } } else { $result = ['status' => ['code' => 409, 'message' => 'Лицевой счет не найден']]; } } else { $result = ['status' => ['code' => 406, 'message' => 'Услуга не найдена']]; } } else { $result = ['status' => ['code' => 403, 'message' => 'Не все обязательные поля заполнены']]; } } else { $result = ['status' => ['code' => 402, 'message' => 'Пользователь не найден']]; } } else { $result = ['status' => ['code' => 400, 'message' => 'Значение Token не задано']]; } return Json::encode($result); }
private function sendPasswordResetEmail($phone) { $user = User::find(['status' => User::STATUS_ACTIVE, 'phone' => $phone])->one(); if (!$user) { return false; } $user->password_reset_token = Security::generateRandomKey(); $user->password = User::generatePassword(); if ($user->save(false)) { $result = \Yii::$app->sms->sms_send(preg_replace("/[^0-9]/", '', $user->phone), 'Ваш новый пароль: ' . $user->password, "Kvadro"); return true; } return false; }