示例#1
0
 /**
  * @inheritdoc
  */
 public function checkAccess($action, $model = null, $params = [])
 {
     if (Yii::$app->request->get('access-token')) {
         $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
         if (!$user) {
             throw new ForbiddenHttpException();
         }
     } else {
         throw new ForbiddenHttpException();
     }
     return true;
 }
示例#2
0
 /**
  * @inheritdoc
  */
 public function checkAccess($action, $model = null, $params = [])
 {
     if (Yii::$app->request->get('access-token')) {
         $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
         if (!$user) {
             throw new ForbiddenHttpException();
         }
     } else {
         throw new ForbiddenHttpException();
     }
     if ($action === "update" || $action === "delete") {
         if (!$user || !$model || $user->id !== $model->trainer_id) {
             throw new ForbiddenHttpException();
         }
     }
     return true;
 }
示例#3
0
 public function actionLike($id)
 {
     $this->checkAccess("like");
     $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
     if ($like = GalleryLike::findOne(['user_id' => $user->id, 'image_id' => $id])) {
         if (!$like->delete()) {
             return ApiHelper::errorResponse($like->getErrors(), 422);
         }
     } else {
         $like = new GalleryLike();
         $like->user_id = $user->id;
         $like->image_id = $id;
         if (!$like->save()) {
             return ApiHelper::errorResponse($like->getErrors(), 422);
         }
     }
     return ApiHelper::successResponse(['message' => 'success']);
 }
示例#4
0
 /**
  * @inheritdoc
  */
 public function checkAccess($action, $model = null, $params = [])
 {
     if (Yii::$app->request->get('access-token')) {
         $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
         if (!$user) {
             throw new ForbiddenHttpException();
         }
     } else {
         throw new ForbiddenHttpException();
     }
     if ($action === 'message') {
         if (!$model) {
             throw new ForbiddenHttpException();
         }
         $class = Classes::findOne(['class_stream' => $model->stream_id]);
         if (!(is_object($class) && $class->canStudy($user))) {
             throw new ForbiddenHttpException();
         }
     }
     return true;
 }
示例#5
0
 public function actionPostMessages($id)
 {
     $sender = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
     $type = $sender->user_type == "trainer" || $sender->user_type == "studio" ? "student" : "trainer";
     $receiver = User::findOne(['user_id' => $id]);
     if (!$receiver || !$sender) {
         return ApiHelper::errorResponse("User not found", 404);
     }
     $trainer_ = $type === "trainer" ? $receiver->id : $sender->id;
     $student_ = $type !== "trainer" ? $receiver->id : $sender->id;
     $result = Classes::canUserSendMessage($trainer_, $student_);
     if (!$result) {
         return ApiHelper::errorResponse("You cannot chat with this user", 403);
     }
     $message = new Chat();
     $chatData = ['sender_id' => $sender->id, 'receiver_id' => $receiver->id, 'message_text' => Yii::$app->request->post('message_text')];
     $message->load($chatData, '');
     if (!$message->save()) {
         return ApiHelper::errorResponse($message->getErrors(), 422);
     }
     $info = $sender->getUserInfo($id)['payment'];
     $body = "You have a new message from {$info->payment_first_name} {$info->payment_last_name} " . Yii::$app->params['email_new_message_link'];
     $return = Yii::$app->mailer->compose()->setTo($receiver->user_email)->setFrom(Yii::$app->params['adminEmail'])->setSubject('New message from ' . $info->payment_first_name . " " . $info->payment_last_name)->setTextBody($body)->send();
     return ApiHelper::successResponse(["sended" => $return]);
 }
示例#6
0
 public function actionGetEarningPdf()
 {
     $this->checkAccess("create");
     $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
     $type = Yii::$app->request->get('type');
     switch ($type) {
         case 'week':
             $period_start = (int) Yii::$app->request->get('period_start');
             $period_end = (int) Yii::$app->request->get('period_end');
             if ($period_start && $period_end) {
                 $data = Classes::getWeekEarningPdf($user->user_id, $period_start, $period_end);
                 if (!$data) {
                     throw new ForbiddenHttpException();
                 }
                 $sum = Classes::getWeekEarning($user->user_id, $period_start, $period_end);
                 $sum = round($sum - $sum / 100 * (int) $user->user_fees, 2);
                 $this->layout = 'main-login';
                 $pdf = Yii::$app->pdf;
                 $dataProvider = new ActiveDataProvider(['query' => $data, 'sort' => false]);
                 $pdf->content = $this->render('invoice_week', ['data' => $dataProvider, 'sum' => $sum, 'user_fees' => (int) $user->user_fees]);
                 return $pdf->render();
             }
             break;
         case 'class':
             $class = (int) Yii::$app->request->get('class');
             $data = Classes::findOne($class);
             if ($data) {
                 $this->layout = 'main-login';
                 $pdf = Yii::$app->pdf;
                 $data = $data->toArray();
                 $dataProvider = new ActiveDataProvider(['query' => Classes::find()->where(['class_id' => $class]), 'sort' => false]);
                 $sum = round((int) $data['pay_sum'] - (int) $data['pay_sum'] / 100 * (int) $user->user_fees, 2);
                 $pdf->content = $this->render('invoice_class', ['data' => $dataProvider, 'sum' => $sum, 'class_id' => $data['class_id'], 'user_fees' => (int) $user->user_fees]);
                 return $pdf->render();
             }
             break;
     }
 }