/** * 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"]); }
/** * 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"]); }