Пример #1
0
 /**
  * Creates a new Message model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @param $receiver : to some body send a msg
  * @return mixed
  * @throws BadRequestHttpException
  */
 public function actionCreate($receiver)
 {
     $this->layout = '//i';
     if ($receiver == Yii::$app->user->id) {
         throw new BadRequestHttpException('给自己发消息有意思不', 403);
     }
     $receiverUser = User::findOne($receiver);
     $model = new Message();
     $model->receiver = $receiver;
     $model->sender = Yii::$app->user->id;
     $model->user_id = $receiver;
     $model->friend_id = Yii::$app->user->id;
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         $msg = new Message();
         $msg->receiver = $receiver;
         $msg->sender = Yii::$app->user->id;
         $msg->user_id = $model->sender;
         $msg->friend_id = $model->receiver;
         $msg->content = $model->content;
         $msg->save(false);
         return $this->redirect(['index']);
     } else {
         var_dump($model->errors);
         return $this->render('create', ['model' => $model, 'receiverUser' => $receiverUser]);
     }
 }
 public function actionLogin()
 {
     $result = false;
     $token = '';
     $accessToken = Yii::$app->request->get('access_token');
     if ($accessToken) {
         if (User::findOne(['access_token' => $accessToken])) {
             $result = true;
         }
     } elseif (Yii::$app->request->post('username') && Yii::$app->request->post('password')) {
         $user = User::findByUsername(Yii::$app->request->post('username'));
         if ($user && $user->validatePassword(Yii::$app->request->post('password'))) {
             if ($user->access_token) {
                 $token = $user->access_token;
             } else {
                 $token = hash('sha256', Yii::$app->request->get('username'));
                 Yii::$app->db->createCommand()->update("user", ['access_token' => $token], 'id = ' . $user->id)->execute();
             }
             $result = true;
         }
     }
     if ($result) {
         return ['result' => 'success', 'access_token' => $token];
     } else {
         return ['result' => 'failed'];
     }
 }
Пример #3
0
 public function create()
 {
     $isValid = false;
     $this->imageFile = UploadedFile::getInstance($this, 'imageFile');
     $user = User::findOne(Yii::$app->user->getId());
     $bulletin = new Bulletin();
     if (isset($this->imageFile)) {
         $imagePath = '/uploads/' . $this->imageFile->baseName . '.' . $this->imageFile->extension;
         $this->imageFile->saveAs(Yii::getAlias('@webroot') . $imagePath);
         $m_image = new Image();
         $m_image->url = $imagePath;
         if ($m_image->save()) {
             $image = Image::findOne($m_image->getPrimaryKey());
             $bulletin->link('image', $image);
             $bulletin->link('user', $user);
             $isValid = true;
         } else {
             $isValid = false;
         }
     }
     $bulletin->title = $this->title;
     $bulletin->description = $this->description;
     if ($bulletin->save()) {
         $isValid = true;
     } else {
         $isValid = false;
     }
     return $isValid;
 }
Пример #4
0
 private function isAdminSelfEdit()
 {
     if (!Yii::$app->user->isGuest) {
         return $this->username === User::findOne(Yii::$app->user->id)->username;
     }
     return false;
 }
Пример #5
0
 public function actionComment()
 {
     if (Yii::$app->request->isAjax) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         $data = Yii::$app->request->post();
         $user = User::findOne(Yii::$app->user->getId());
         $whom = User::findOne($data['whom_id']);
         $rate = $whom->profile->rate;
         if ($rate == 0) {
             $whom->profile->rate = (double) $data['rate'];
         } else {
             $whom->profile->rate = ($rate + (double) $data['rate']) / 2;
         }
         $whom->profile->save();
         $comment = new Comment();
         $comment->rate = $data['rate'];
         $comment->description = $data['comment'];
         $comment->whom_id = $data['whom_id'];
         $comment->link('owner', $user);
         if ($comment->save()) {
             return array('success' => true);
         }
         return array('success' => false);
     }
 }
Пример #6
0
 public function actionCreateuser()
 {
     $userModel = User::findOne(['user_name' => yii::$app->request->post('user_name')]);
     if ($userModel === null) {
         $userModel = new User();
         $userModel->load(yii::$app->request->post());
         if ($userModel->save()) {
             yii::$app->AjaxResponse->error = false;
             yii::$app->AjaxResponse->message = ['User has been created'];
             yii::$app->UserComponent->sendWelcomeEmail($userModel->first_name, $userModel->email);
         } else {
             yii::$app->AjaxResponse->message = array_values($userModel->getErrors());
         }
     } else {
         // user exits but is not active
         if ($userModel->status_id != Types::$status['active']['id']) {
             $userModel->status_id = Types::$status['active']['id'];
             $userModel->save();
             yii::$app->AjaxResponse->error = false;
             yii::$app->AjaxResponse->message = ['User reactivated'];
         } else {
             yii::$app->AjaxResponse->message = ['User already exists'];
         }
     }
     yii::$app->AjaxResponse->sendContent();
 }
Пример #7
0
 /**
  * Finds user by [[email]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findOne(['email' => $this->email]);
     }
     return $this->_user;
 }
Пример #8
0
 public function finishReg($id)
 {
     /* @var $modelUser \common\models\User */
     /* @var $modelPlaceCountry \common\models\PlaceCountry */
     $modelUser = User::findOne($id);
     if ($this->scenario === 'phoneFinish') {
         $modelUser->phone = $this->getPhoneNumber();
         $modelUser->status = User::STATUS_ACTIVE;
         $modelUser->country_id = $this->country_id;
         $modelUser->setPassword(time());
         $modelUser->generateAuthKey();
         $modelUser->save();
         return RbacHelper::assignRole($modelUser->getId()) ? $modelUser : null;
     } elseif ($this->scenario === 'phoneAndEmailFinish') {
         $modelUser->phone = $this->getPhoneNumber();
         $modelUser->email = $this->email;
         $modelUser->country_id = $this->country_id;
         $modelUser->setPassword($this->password);
         $modelUser->generateAuthKey();
         $modelUser->generateSecretKey();
         $modelUser->validate();
         $modelUser->save();
         return RbacHelper::assignRole($modelUser->getId()) ? $modelUser : null;
     }
     return false;
 }
Пример #9
0
 /**
  * Lists all Acts models.
  * @return mixed
  */
 public function actionIndex()
 {
     $searchModel = new ActsSearch();
     $usr = User::findOne(Yii::$app->user->id);
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams, $usr->_1c_id);
     return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
 }
Пример #10
0
 /**
  * @param $id
  * @return $this
  */
 public function findOne($id)
 {
     $user = User::findOne($id);
     $this->username = $user->username;
     $this->email = $user->email;
     return $this;
 }
Пример #11
0
 public function execute($user, $item, $params)
 {
     //Получаем массив пользователя из базы
     $cacheUser = '******' . Yii::$app->user->id;
     if (false === ($_user = Yii::$app->cache->get($cacheUser))) {
         if (null === ($_user = User::findOne($user))) {
             return FALSE;
             //throw new NotFoundHttpException;
         }
         Yii::$app->cache->set($cacheUser, $_user, 86400);
     }
     $user = ArrayHelper::getValue($params, 'user', $_user);
     if ($user) {
         $role = $user->role;
         //Значение из поля role базы данных
         if ($item->name === 'admin') {
             return $role == User::ROLE_ADMIN;
         } elseif ($item->name === 'moder') {
             //moder является потомком admin, который получает его права
             return $role == User::ROLE_ADMIN || $role == User::ROLE_MODER;
         } elseif ($item->name === 'user') {
             return $role == User::ROLE_ADMIN || $role == User::ROLE_MODER || $role == User::ROLE_USER;
         }
     }
     return false;
 }
 /**
  * @return null|User
  */
 protected function getUser()
 {
     if ($this->_user === null) {
         $this->_user = User::findOne($this->user_id);
     }
     return $this->_user;
 }
Пример #13
0
 public function actionCreateEvent()
 {
     $model = new EventCreateForm();
     $model->own_id = \Yii::$app->user->getId();
     $model->create_at = date('Y-m-d h:i');
     if ($model->load(\Yii::$app->request->post())) {
         if (!$model->validate()) {
             return $this->render('error');
         }
         if (sizeof($model->friend) > 0) {
             $title = $model->title . ' (Member: ' . User::findOne(['id' => \Yii::$app->user->getId()])->username;
             foreach ($model->friend as $userId) {
                 $title = $title . ', ' . User::findOne(['id' => $userId])->username;
             }
             $title = $title . ')';
         } else {
             $title = $model->title;
         }
         $eventId = $model->addEvent($title);
         if (sizeof($model->friend) > 0) {
             foreach ($model->friend as $userId) {
                 $scheduleNotify = new ScheduleNotification();
                 $scheduleNotify['schedule_id'] = $eventId;
                 $scheduleNotify['receiver_id'] = $userId;
                 $scheduleNotify['action_id'] = \Yii::$app->user->getId();
                 $scheduleNotify['create_at'] = $model->create_at;
                 $scheduleNotify->save();
             }
         }
         $this->refresh();
     }
     return $this->render('show', ['model' => $model]);
 }
Пример #14
0
 public function actionIndex()
 {
     $user = \Yii::$app->user->identity;
     $parent = null;
     $child = null;
     if (!\Yii::$app->user->can('admin')) {
         $user->parent_id ? $parent = \common\models\User::findOne(['id' => $user->parent_id]) : '';
         $child = new \yii\data\ActiveDataProvider(['query' => \common\models\User::find()->where(['parent_id' => $user->id])]);
     } else {
         $userList = \common\models\User::find()->where(['parent_id' => null])->orderBy('id')->all();
         $tree = [];
         foreach ($userList as $key => $item) {
             $tree[] = $item;
             $branch = $this->makeTree($item->id, 0, array());
             $tree = array_merge($tree, $branch);
         }
         $userList = $tree;
         //            print_r('<pre>');
         //            print_r($userList);
         //            print_r('</pre>');
         //            die();
     }
     $crypt = openssl_encrypt($user->email, 'aes-128-ecb', '304c6528f659c77866a510d9c1d6ae5e', false);
     return $this->render('index', ['parent' => $parent, 'child' => $child, 'crypt' => $crypt, 'userList' => $userList]);
 }
Пример #15
0
 /**
  * добавляет в базу новую ставку
  * @param Model $fantasy
  */
 public function addRate($fantasy)
 {
     $draftModel = new PokerDraft();
     $PokerDraftPlayer = new PokerDraftPlayer();
     $draftModel->attributes = $this->attributes;
     $draftModel->save();
     //echo'<pre>'; print_r($draftModel);echo'</pre>';die;
     $PokerDraftPlayer->addPlayersRows($this->players, $draftModel->id);
     //снимаем взнос+комиссия у игрока
     $user = User::findOne(Yii::$app->user->id);
     $deposit_before = $user->deposit;
     $user->deposit = $user->deposit - $fantasy->deposit - $fantasy->fee;
     if ($user->save()) {
         //заносим в лог
         $data = ['fantasy_id' => $fantasy->id, 'game' => Transaction::TR_GAME_POKER];
         $trans_descr = Transaction::buildTransactionDescrForSave(Transaction::TR_TYPE_FANTASY_PAYMENT, $data);
         Transaction::saveTransaction($user->id, $deposit_before, -($fantasy->deposit + $fantasy->fee), $trans_descr);
     }
     //если нужно - увеличиваем призовой фонд
     //$total_sum_rates = PokerDraft::getCountFantasyDrafts($fantasy->id) * $fantasy->deposit;
     $total_sum_rates = $draftModel->getCountFantasyDrafts($fantasy->id) * $fantasy->deposit;
     if ($total_sum_rates > $fantasy->prize_pool_real) {
         PokerFantasy::upateRealPrizePool($fantasy->id, $total_sum_rates);
     }
 }
 public function sendMail()
 {
     /* @var $user User */
     $user = User::findOne(['status' => User::STATUS_ACTIVE, 'email' => $this->email]);
     if ($user) {
         if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
             $user->generatePasswordResetToken();
         }
         if ($user->save()) {
             $setting = Setting::find()->where(['id' => 1])->one();
             $username = $setting->sendgridUsername;
             $password = $setting->sendgridPassword;
             $mail_admin = $setting->emailAdmin;
             $sendgrid = new \SendGrid($username, $password, array("turn_off_ssl_verification" => true));
             $email = new \SendGrid\Email();
             $mail = $user->email;
             //echo $user->email;exit(0);
             $resetLink = \Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]);
             $body_message = 'Hello ' . Html::encode($user->username) . ', <br>
             Follow the link below to reset your password:  <br>
             ' . Html::a(Html::encode($resetLink), $resetLink);
             $email->addTo($user->email)->setFrom($mail_admin)->setSubject('Password reset for ' . \Yii::$app->name)->setHtml($body_message);
             $response = $sendgrid->send($email);
             return $response;
         }
     }
     return false;
 }
Пример #17
0
 /**
  * Уведомления при подписке на человека
  */
 public function actionSubscriptionUserNotifications()
 {
     $date_minus_six_hours = new \DateTime();
     $date_minus_six_hours = $date_minus_six_hours->modify('-2 hours');
     $email_queue = [];
     $wall_events = Wall::find()->where('created >= ' . $date_minus_six_hours->getTimestamp() . ' AND created <= ' . time())->all();
     foreach ($wall_events as $event) {
         if ($event->type == 2) {
             $event_data = json_decode($event->mem);
             $User = User::findOne(['id' => $event_data->to]);
             $Subscriber = User::find()->where(['id' => $event_data->from])->asArray()->one();
             if ($Subscriber) {
                 $email_queue[$User->email][$event_data->from] = ['subscriber' => User::find()->where(['id' => $event_data->from])->asArray()->one(), 'data' => $event->created, 'status' => $event_data->status];
             }
         }
     }
     foreach ($email_queue as $email => $recipient) {
         $subscribed = [];
         $unsubscribed = [];
         foreach ($recipient as $person) {
             if ($person['status']) {
                 $subscribed[] = $person;
             } else {
                 $unsubscribed[] = $person;
             }
         }
         $messages[] = \Yii::$app->mailer->compose('user-subscribe', ['subscribed' => $subscribed, 'unsubscribed' => $unsubscribed])->setFrom('*****@*****.**')->setTo($email)->setSubject('Для Вас есть новые уведомления на сайте http://findspree.ru');
     }
     if (isset($messages) && !empty($messages)) {
         \Yii::$app->mailer->sendMultiple($messages);
     }
 }
Пример #18
0
 public function actionActivate($id)
 {
     $user = User::findOne($id);
     $user->status = 10;
     $user->save();
     return $this->redirect(['view', 'id' => $id]);
 }
Пример #19
0
 /**
  * Finds the User model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  *
  * @param string $username Username
  * @return User the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModelByUsername($username)
 {
     if (($model = User::findOne(['username' => $username])) !== null) {
         return $model;
     }
     throw new NotFoundHttpException(Yii::t('writesdown', 'The requested page does not exist.'));
 }
Пример #20
0
 public function run()
 {
     $user = User::findOne(Yii::$app->user->id);
     echo Nav::widget(['items' => [['label' => 'Контактная информация', 'url' => ['/tor/profile']], ['label' => 'Добавить лот на продажу', 'url' => ['/tor/mng-ad']], ['label' => 'Мои объявления <span class="badge">' . TorAds::find()->count() . '</span>', 'url' => ['/tor/my-ads']], ['label' => 'Пополнить баланс ', 'url' => ['/']], ['label' => 'История платежей', 'url' => ['/']], ['label' => 'Реферальная ссылка', 'url' => ['/']]], 'options' => ['class' => 'account-nav'], 'encodeLabels' => false]);
     $view = $this->view;
     NavAsset::register($view);
 }
 /**
  * Sends an email with a link, for resetting the password.
  *
  * @return boolean whether the email was send
  */
 public function sendEmail()
 {
     /* @var $user User */
     $user = \common\models\User::findOne(['status' => ['active', 'inactive'], 'email' => $this->email]);
     // \yii\helpers\VarDumper::dump($user);
     //  die;
     $data = array();
     $user->generatePasswordResetToken();
     $userProfile = \common\models\UserProfile::findOne(['user_id' => $user->id]);
     if ($user->user_type == 'admin') {
         $resetLink = Yii::$app->urlManager->createAbsoluteUrl(['auth/login/reset-password', 'token' => $user->ud_temp_password]);
         $data['user'] = $userProfile->first_name . ' ' . $userProfile->last_name;
     } else {
         $resetLink = Yii::$app->urlManager->createAbsoluteUrl(['auth/login/reset-password', 'token' => $user->ud_temp_password]);
         $data['user'] = $userProfile->first_name . ' ' . $userProfile->last_name;
     }
     if ($user->save(false)) {
         $resetLink = $resetLink;
         $data['to'] = $user->email;
         $data['link'] = $resetLink;
         $data['request'] = "forget_password";
         Utility::sendMail($data);
         return true;
     }
     return false;
 }
Пример #22
0
 /**
  * Logs in a user.
  *
  * @return mixed
  */
 public function actionLogin()
 {
     /** @var $eauth \nodge\eauth\ServiceBase */
     $eauth = Yii::$app->get('eauth')->getIdentity('steam');
     $eauth->setRedirectUrl(Yii::$app->getUser()->getReturnUrl());
     $eauth->setCancelUrl(Yii::$app->getUrlManager()->createAbsoluteUrl('site/login'));
     try {
         if ($eauth->authenticate()) {
             $identity = User::findByEAuth($eauth);
             $user = User::findOne(['steamid' => $identity->steamid]);
             if (!$user) {
                 $user = new User();
             }
             $user->username = $identity->username;
             $user->steamid = $identity->steamid;
             $user->profile_url = $identity->profile_url;
             $user->avatar = $identity->avatar;
             $user->avatar_md = $identity->avatar_md;
             $user->avatar_lg = $identity->avatar_lg;
             $user->generateAuthKey();
             $user->save();
             Yii::$app->getUser()->login($identity);
             $eauth->redirect();
         } else {
             $eauth->cancel();
         }
     } catch (ErrorException $e) {
         Yii::$app->getSession()->setFlash('error', 'EAuthException: ' . $e->getMessage());
         $eauth->redirect($eauth->getCancelUrl());
     }
 }
Пример #23
0
 public function save()
 {
     $user = User::findOne($this->id);
     $user->setPassword($this->confirmPassword);
     $this->success = $user->save();
     return $this->success;
 }
Пример #24
0
 /**
  * 上传头像
  */
 public function actionUploadFace()
 {
     //@todo
     $model = new UploadForm();
     if (Yii::$app->request->isPost) {
         $model->file = UploadedFile::getInstance($model, 'file');
         if ($model->file && $model->validate()) {
             $path = time() . '_' . Yii::$app->security->generateRandomString(8) . '.' . $model->file->extension;
             $model->file->saveAs(Yii::$app->basePath . '/web/uploads/' . $path);
             $uploadFile = new UploadFile();
             $uploadFile->path = $path;
             $uploadFile->user_id = Yii::$app->user->id;
             $uploadFile->mime_type = $model->file->type;
             if ($uploadFile->save()) {
                 $user = User::findOne(['id' => Yii::$app->user->id]);
                 if ($user->face) {
                     $user->face = null;
                     $user->save();
                 }
                 $user->face = $path;
                 if ($user->save()) {
                     return $this->redirect('index');
                 } else {
                     error_log(print_r($user->errors, true));
                     $uploadFile->delete();
                 }
             } else {
                 error_log(print_r($uploadFile->errors, true));
             }
         }
     }
     return $this->render('upload-face', ['model' => $model]);
 }
Пример #25
0
 /**
  * Resets password.
  *
  * @return boolean if password was reset.
  */
 public function resetPassword()
 {
     $user = User::findOne(['id' => Yii::$app->user->id]);
     $user->setPassword($this->password);
     $user->removePasswordResetToken();
     return $user->save();
 }
Пример #26
0
 /**
  * Lists all Mesaj models.
  * @return mixed
  */
 public function actionIndex($id = NULL)
 {
     $users = User::find()->all();
     if ($id) {
         $model = new Mesaj();
         $konusma = Konusma::findOne(['konusmaci_1' => yii::$app->user->id, 'konusmaci_2' => $id]);
         if (!$konusma) {
             $konusma = Konusma::findOne(['konusmaci_2' => yii::$app->user->id, 'konusmaci_1' => $id]);
         }
         if (!$konusma) {
             $konusma = new Konusma();
             $konusma->konusmaci_1 = yii::$app->user->id;
             $konusma->konusmaci_2 = $id;
             $konusma->save();
         }
         $post = yii::$app->request->post();
         if ($model->load($post)) {
             $model->konusma_id = $konusma->id;
             $model->gonderen_id = yii::$app->user->id;
             date_default_timezone_set("Europe/Istanbul");
             $model->tarih = date("Y-m-d H:i:s");
             if ($model->save()) {
                 return $this->redirect(['index', 'id' => $id]);
             } else {
                 print_r($model);
                 exit;
             }
         }
         $kullanici = User::findOne($id);
         $mesajlar = Mesaj::find()->where(['konusma_id' => $konusma->id])->orderBy(['id' => SORT_ASC])->all();
         return $this->render('index', ['users' => $users, 'mesajlar' => $mesajlar, 'kullanici' => $kullanici, 'model' => $model]);
     } else {
         return $this->render('index', ['users' => $users]);
     }
 }
Пример #27
0
 public function actionList()
 {
     //设置当前view的params参数
     $view = Yii::$app->view;
     $view->params['layoutData'] = 'this is test';
     $model = User::findOne(1);
     return $this->render('list', ['model' => $model]);
 }
Пример #28
0
 protected function user($username = '')
 {
     $user = User::findOne(['username' => $username]);
     if ($user === null) {
         throw new NotFoundHttpException();
     }
     return $user;
 }
Пример #29
0
 public function findModel($id)
 {
     if (($model = User::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Пример #30
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         //$this->_user = User::findByUsername($this->username);
         $this->_user = User::findOne(["email" => $this->email]);
     }
     return $this->_user;
 }