public function up()
 {
     $rows = User::query(['not', ['email' => null]])->select('id,email')->all();
     foreach ($rows as $row) {
         $this->execute('update gs_users set `email`=\'' . strtolower($row['email']) . '\' where id=' . $row['id']);
     }
 }
 /**
  * AJAX
  * Создает подписку для авторизованного или неавторизованного пользователя
  * Высылает письмо подтверждения email
  *
  * @return string json
  *                error
  *                101, 'Такая почта уже зарегистрирована'
  */
 public function actionMail()
 {
     $email = self::getParam('email');
     $name = self::getParam('name');
     $email = strtolower($email);
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         return self::jsonErrorId(101, 'Не корректная почта');
     }
     if (User::query(['email' => $email])->exists()) {
         return self::jsonErrorId(101, 'Такая почта уже зарегистрирована');
     }
     if (Yii::$app->user->isGuest) {
         $fields = ['email' => $email, 'datetime_reg' => gmdate('YmdHis'), 'is_active' => 0, 'is_confirm' => 0, 'name_first' => $name];
         foreach (Subscribe::$userFieldList as $field) {
             $fields[$field] = 1;
         }
         $user = User::insert($fields);
     } else {
         /** @var \app\models\User $user */
         $user = Yii::$app->user->identity;
         $fields = ['email' => $email, 'datetime_reg' => gmdate('YmdHis'), 'is_active' => 0, 'is_confirm' => 0];
         foreach (Subscribe::$userFieldList as $field) {
             $fields[$field] = 1;
         }
         $user->update($fields);
     }
     $fields = RegistrationDispatcher::add($user->getId());
     \cs\Application::mail($email, 'Подтверждение почты', 'subscribe_activate', ['url' => Url::to(['subscribe/activate', 'code' => $fields['code']], true), 'user' => $user, 'datetime' => \Yii::$app->formatter->asDatetime($fields['date_finish'])]);
     return self::jsonSuccess();
 }
Example #3
0
 /**
  * Добавляет записи для рассылки в таблицу рассылки
  *
  * @param SiteContentInterface | \app\models\SubscribeItem $item тема письма
  */
 public static function add($item)
 {
     if ($item instanceof SiteContentInterface) {
         $subscribeItem = $item->getMailContent();
     } else {
         $subscribeItem = $item;
     }
     switch ($subscribeItem->type) {
         case self::TYPE_NEWS:
             $where = ['subscribe_is_news' => 1];
             break;
         case self::TYPE_SITE_UPDATE:
             $where = ['subscribe_is_site_update' => 1];
             break;
         case self::TYPE_MANUAL:
             $where = ['subscribe_is_tesla' => 1];
             //                $where = ['subscribe_is_test' => 1];
             break;
     }
     $emailList = User::query($where)->select('email')->andWhere(['not', ['email' => null]])->andWhere(['not', ['email' => '']])->andWhere(['is_active' => 1])->column();
     //        VarDumper::dump(count($emailList),3,false);exit;
     $rows = [];
     foreach ($emailList as $email) {
         $urlUnSubscribe = Url::to(['subscribe/unsubscribe', 'mail' => $email, 'type' => $subscribeItem->type, 'hash' => self::hashGenerate($email, $subscribeItem->type)], true);
         SubscribeMailItem::insert(['text' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->text), 'html' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->html), 'subject' => $subscribeItem->subject, 'mail' => $email, 'date_insert' => time()]);
         $rows[] = $email;
     }
     \Yii::info($rows, 'tg\\subscribe');
 }
Example #4
0
 /**
  * Добавляет записи для рассылки в таблицу рассылки
  *
  * @param SiteContentInterface | \app\models\SubscribeItem $item тема письма
  */
 public static function add($item)
 {
     if ($item instanceof SiteContentInterface) {
         $subscribeItem = $item->getMailContent();
     } else {
         $subscribeItem = $item;
     }
     switch ($subscribeItem->type) {
         case self::TYPE_NEWS:
             $where = ['subscribe_is_news' => 1];
             break;
         case self::TYPE_SITE_UPDATE:
             $where = ['subscribe_is_site_update' => 1];
             break;
         case self::TYPE_MANUAL:
             $where = ['subscribe_is_manual' => 1];
             break;
     }
     $emailList = User::query($where)->select('email')->andWhere(['not', ['email' => null]])->andWhere(['is_active' => 1, 'is_confirm' => 1])->column();
     $rows = [];
     foreach ($emailList as $email) {
         $urlUnSubscribe = Url::to(['subscribe/unsubscribe', 'mail' => $email, 'type' => $subscribeItem->type, 'hash' => self::hashGenerate($email, $subscribeItem->type)], true);
         $rows[] = [str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->text), str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->html), $subscribeItem->subject, $email, time()];
     }
     \Yii::info(ArrayHelper::getColumn($rows, 3), 'gs\\subscribe');
     if (count($rows) > 0) {
         SubscribeMailItem::batchInsert(['text', 'html', 'subject', 'mail', 'date_insert'], $rows);
     }
 }
Example #5
0
 public function verify($username, $login_token)
 {
     $user = User::query()->where(['username' => $user_name])->first(['id', 'login_token']);
     if ($user->login_token === $login_token) {
         return $user->id;
     }
     return false;
 }
 public function up()
 {
     $this->execute('ALTER TABLE galaxysss_4.cap_users ADD referal_link VARCHAR(20) NULL;');
     $rows = \app\models\User::query()->select('id')->column();
     foreach ($rows as $id) {
         (new \yii\db\Query())->createCommand()->update('cap_users', ['referal_link' => \cs\services\Security::generateRandomString(20)], ['id' => $id])->execute();
     }
 }
Example #7
0
 public function show(UserAuth $user, $id)
 {
     $query = \App\Models\User::query();
     if ($user != null && $user['id'] == $id) {
         $query->select('id', 'username', 'first_name', 'last_name', 'email', 'phone');
     } else {
         $query->select(['id', 'username', 'first_name', 'last_name']);
     }
     return $query->find($id) ?: $this->notFoundJson();
 }
Example #8
0
 public function validateEmail($attribute, $params)
 {
     if (!User::query(['email' => $this->email])->exists()) {
         $this->addError($attribute, 'Такой пользователь не найден');
     }
     if (!User::query(['email' => $this->email, 'is_confirm' => 1])->exists()) {
         $this->addError($attribute, 'Пользователь еще не подтвердил свой email');
     }
     if (!User::query(['email' => $this->email, 'is_active' => 1])->exists()) {
         $this->addError($attribute, 'Пользователь заблокирован');
     }
 }
 public function index()
 {
     $users = User::query()->orderBy('name', 'ASC')->get();
     $movies = Movie::query()->orderBy('title', 'ASC')->get();
     $prediction = new Prediction();
     $predictionData = [];
     $users->each(function ($user, $index) use($prediction, &$predictionData) {
         $rateData = ["predictions" => $prediction->make($user), "ratedMovies" => $prediction->getRatedmovies()];
         $predictionData[$user->id] = $rateData;
     });
     $data = ["users" => $users, "movies" => $movies, "predictionData" => $predictionData];
     return view('prediction', $data);
 }
Example #10
0
 /**
  * Login process
  */
 public function postLogin()
 {
     //Form not valid
     $validator = true;
     //Error messages
     $data['login_error_messages'] = [];
     //Username
     if (!isset($_POST['username']) || $_POST['username'] == '') {
         //Set error message for login form username
         $data['login_error_messages']['username'] = '******';
         //Validator is false
         $validator = false;
     }
     if (!isset($_POST['password']) || $_POST['password'] == '') {
         //Set error message for login form username
         $data['login_error_messages']['password'] = '******';
         //Validator is false
         $validator = false;
     }
     //If form is valid the continue processing
     if ($validator) {
         //Query to check username and password in database
         //Create new haser object
         $hasher = new Hash();
         //Get credentials
         $username = $_POST['username'];
         $password = $hasher->make($_POST['password']);
         //Create user model
         $user = new User();
         //Check username an password in database
         $results = $user->query("SELECT * FROM users WHERE username = '******' AND password = '******'");
         //Login is correct
         if ($results !== false) {
             //Login success
             //Set the sessions data
             $_SESSION['isLoggedIn'] = true;
             $_SESSION['user_id'] = $results[0]['id'];
             //Go back to home page
             header('location:/blog');
         } else {
             //Login incorrect
             $data['alert_login'] = '******';
             //Reload page
             view('login-register', $data);
         }
     } else {
         //Form is not valid
         view('login-register', $data);
     }
 }
 public function search($input)
 {
     $query = User::query();
     $columns = Schema::getColumnListing('users');
     $attributes = array();
     foreach ($columns as $attribute) {
         if (isset($input[$attribute]) and !empty($input[$attribute])) {
             $query->where($attribute, $input[$attribute]);
             $attributes[$attribute] = $input[$attribute];
         } else {
             $attributes[$attribute] = null;
         }
     }
     return [$query->get(), $attributes];
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $benchmarck = new Benchmark();
     $benchmarck->start();
     $qtdCriar = $this->argument('qtd');
     if (!is_numeric($qtdCriar)) {
         $this->error('Parametro qtd deve ser um numero inteiro.');
         return;
     }
     $qtdUsers = User::query()->count();
     $until = $qtdUsers + $qtdCriar;
     for ($qtdUsers; $qtdUsers < $until; $qtdUsers++) {
         User::create(['name' => 'Usuário ' . ($qtdUsers + 1)]);
     }
     $this->info("Usuarios criados com sucesso!");
     $this->info("Tem decorrido: " . $benchmarck->stop()->elapsedSeconds());
 }
 public function up()
 {
     foreach (\app\models\User::query(['referal_code' => null])->select('id')->column() as $id) {
         $this->update(\app\models\User::TABLE, ['referal_code' => \cs\services\Security::generateRandomString(20)], ['id' => $id]);
     }
 }
 /**
  * @return Response
  */
 public function runAction()
 {
     /** @var Criteria $query */
     $query = User::query();
     return $this->response($query);
 }
Example #15
0
 public function actionStatistic()
 {
     $data = User::query()->select(['datetime_reg'])->column();
     $data2 = \app\services\Statistic::getIncrementDataAllGraphic($data, 'Y-m-d');
     $new = [];
     for ($i = 0; $i < count($data2['x']); $i++) {
         if ($data2['x'][$i] > '2015-07-18') {
             $new['x'][] = (new \DateTime($data2['x'][$i]))->format('d.m');
             $new['y'][] = $data2['y'][$i];
         }
     }
     $data2 = $new;
     $data3 = GraphExporter::convert(['rows' => [User::query()->select(['COUNT(id) as `kurs`', 'DATE(datetime_reg) as `date`'])->groupBy('DATE(datetime_reg)')->all()], 'formatX' => 'd.m', 'start' => new \DateTime('2015-07-05'), 'isExcludeWeekend' => false]);
     return $this->render(['lineArray' => $data3, 'lineArray2' => ['x' => $data2['x'], 'y' => [$data2['y']]]]);
 }
Example #16
0
 public function getTotalLeadStatusByUser($status, User $user)
 {
     $query = User::query();
     $query->join('user_meta', function ($join) use($status) {
         $join->on('user.id', '=', 'user_meta.user_id');
         $join->where('user_meta.attr', '=', 'status');
         $join->where('user_meta.value', '=', $status);
     });
     $query->where('user.parent', $user->id);
     return $query->count();
 }
Example #17
0
 public function emailValidate($attribute, $params)
 {
     if (User::query(['email' => $this->email])->exists()) {
         $this->addError($attribute, 'Такой пользоатель уже есть');
     }
 }
Example #18
0
 /**
  * AJAX
  *
  * RESPONSE:
  * - login - string
  * - name - string
  *
  * @return array|string|Response
  */
 public function actionRegistration_ajax()
 {
     $login = strtolower(self::getParam('login'));
     $name = self::getParam('name');
     if (User::query(['email' => $login])->exists()) {
         return self::jsonErrorId(101, 'Пользователь уже существует');
     }
     $user = User::registration($login, substr(str_shuffle("01234567890123456789"), 0, 4), ['name_first' => $name]);
     Yii::$app->user->login($user);
     return self::jsonSuccess();
 }
Example #19
0
 public function getAuthor()
 {
     $author = User::query()->findOrFail($this->author_id);
     return $author;
 }
Example #20
0
 public function validateEmail($attribute, $params)
 {
     if (User::query(['email' => strtolower($this->email)])->exists()) {
         $this->addError($attribute, 'Такой пользователь уже существует, вам нужно войти сначала');
     }
 }