Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 /**
  * Поиск записей по переданным критериям.
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * @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();
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
 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;
 }