예제 #1
0
 /**
  * Renders the post edit form.
  */
 public function getReport(Request $request, Board $board, Post $post, $global = false)
 {
     if (!$post->exists) {
         abort(404);
     }
     $actions = ["report"];
     $ContentFormatter = new ContentFormatter();
     $reportText = "";
     if ($global === "global") {
         if (!$post->canReportGlobally($this->user)) {
             abort(403);
         }
         $actions[] = "global";
         $reportText = $ContentFormatter->formatReportText($this->option('globalReportText'));
     } else {
         if (!$post->canReport($this->user)) {
             abort(403);
         }
         $reportText = $ContentFormatter->formatReportText($board->getConfig('boardReportText'));
     }
     if (!isset($report)) {
         $report = Report::where('post_id', '=', $post->post_id)->where('global', $global === "global")->where('board_uri', $board->board_uri)->whereByIPOrUser($this->user)->first();
     }
     return $this->view(static::VIEW_MOD, ['actions' => $actions, 'form' => "report", 'board' => $board, 'post' => $post, 'report' => $report ?: false, 'reportText' => $reportText, 'reportGlobal' => $global === "global"]);
 }
예제 #2
0
 /**
  * Renders the post edit form.
  */
 public function getReport(Request $request, Board $board, $post, $global = false)
 {
     // Validate the request parameters.
     if (!($post = $this->validatePost($board, $post)) instanceof Post) {
         // If the response isn't a Post, it's a redirect or error.
         // Return the message.
         return $post;
     }
     $actions = ["report"];
     $ContentFormatter = new ContentFormatter();
     $reportText = "";
     if ($global === "global") {
         if (!$post->canReportGlobally($this->user)) {
             abort(403);
         }
         $actions[] = "global";
         $reportText = $ContentFormatter->formatReportText($this->option('globalReportText'));
     } else {
         if (!$post->canReport($this->user)) {
             abort(403);
         }
         $reportText = $ContentFormatter->formatReportText($board->getConfig('boardReportText'));
     }
     if (!isset($report)) {
         $user = $this->user;
         $report = Report::where('post_id', '=', $post->post_id)->where('global', $global === "global")->where('board_uri', $board->board_uri)->where(function ($query) use($user) {
             $query->where('reporter_ip', inet_pton(Request::ip()));
             if (!$user->isAnonymous()) {
                 $query->orWhere('user_id', $user->user_id);
             }
         })->first();
     }
     return $this->view(static::VIEW_MOD, ['actions' => $actions, 'form' => "report", 'board' => $board, 'post' => $post, 'report' => $report ?: false, 'reportText' => $reportText, 'reportGlobal' => $global === "global"]);
 }