permitted('users_warn')) { Error403::error(); } authorize(); $postId = (int)($_POST['postid'] ?? 0); $post = $manager->findById($postId); if (is_null($post)) { Error404::error(); } $userMan = new \Gazelle\Manager\User(); $user = $userMan->findById($post->userId()); if (is_null($user)) { Error404::error(); } if ($user->classLevel() >= $Viewer->classLevel()) { Error403::error(); } $body = trim($_POST['body'] ?? ''); if (empty($body)) { Error400::error( "Post body cannot be left empty (you can leave a reason for others to see)" ); } if (empty($_POST['reason'])) { Error400::error("Reason for warning not provided"); } if (!isset($_POST['length']) || !strlen($_POST['length'])) { Error400::error("Length of warning not provided"); } $weeks = (int)$_POST['length']; $reason = trim($_POST['reason']); $userMessage = trim($_POST['privatemessage']); $user->warnPost($post, $weeks, $Viewer, $reason, $userMessage); header("Location: {$post->location()}"); return [$post, $body]; }