id = $postId; if (!$db->fetch($item) || $item->deleted) { http_response_code(404); msg_error(__("No post exists with this id")); exit; } $topicAuthor = new User(); $topicAuthor->id = $item->authorId; if (!$db->fetch($topicAuthor)) $topicAuthor = null; $canEdit = ($currentUser->id === $topicAuthor?->id && $topicAuthor?->hasPermission(UserPermissions::EDIT_OWN_POST)) || ($currentUser->hasPermission(UserPermissions::EDIT_OTHER_POST)); $topic = new Topic(); $topic->id = $item->topicId; if (!$db->fetch($topic)) $topic = null; if ($topic->isLocked) { http_response_code(403); msg_error(__("This topic has been locked")); exit; } if (!$canEdit) { http_response_code(403); msg_error(__("You don't have permission to edit this post")); exit; } $confirm = $_POST["confirm"] ?? null; $item->content = $message; $item->edited = true; if (!$db->update($item)) { http_response_code(500); msg_error(__("Failed to update post")); exit; } header("Location: ?_action=viewtopic&topic=" . urlencode($item->topicId) . "#post-" . urlencode($postId));