From ec9e3598d3ef7b8494e0000fba9e75274bc8a154 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 13 Oct 2021 21:57:20 -0400 Subject: [PATCH] make sure post wasn't deleted or removed. --- crates/api_common/src/lib.rs | 12 ++++++++++-- crates/api_crud/src/comment/create.rs | 2 ++ crates/api_crud/src/comment/update.rs | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/api_common/src/lib.rs b/crates/api_common/src/lib.rs index be793afed..c4b1dd6f5 100644 --- a/crates/api_common/src/lib.rs +++ b/crates/api_common/src/lib.rs @@ -363,9 +363,17 @@ pub async fn check_community_deleted_or_removed( ) -> Result<(), LemmyError> { let community = blocking(pool, move |conn| Community::read(conn, community_id)) .await? - .map_err(|_| ApiError::err("couldnt_find_community"))?; + .map_err(|e| ApiError::err("couldnt_find_community", e))?; if community.deleted || community.removed { - Err(ApiError::err("deleted").into()) + Err(ApiError::err_plain("deleted").into()) + } else { + Ok(()) + } +} + +pub fn check_post_deleted_or_removed(post: &Post) -> Result<(), LemmyError> { + if post.deleted || post.removed { + Err(ApiError::err_plain("deleted").into()) } else { Ok(()) } diff --git a/crates/api_crud/src/comment/create.rs b/crates/api_crud/src/comment/create.rs index a1c16a9ae..37ecb2f05 100644 --- a/crates/api_crud/src/comment/create.rs +++ b/crates/api_crud/src/comment/create.rs @@ -5,6 +5,7 @@ use lemmy_api_common::{ check_community_ban, check_community_deleted_or_removed, check_person_block, + check_post_deleted_or_removed, comment::*, get_local_user_view_from_jwt, get_post, @@ -58,6 +59,7 @@ impl PerformCrud for CreateComment { check_community_ban(local_user_view.person.id, community_id, context.pool()).await?; check_community_deleted_or_removed(community_id, context.pool()).await?; + check_post_deleted_or_removed(&post)?; check_person_block(local_user_view.person.id, post.creator_id, context.pool()).await?; diff --git a/crates/api_crud/src/comment/update.rs b/crates/api_crud/src/comment/update.rs index 0bc17b161..b0892c58c 100644 --- a/crates/api_crud/src/comment/update.rs +++ b/crates/api_crud/src/comment/update.rs @@ -4,6 +4,7 @@ use lemmy_api_common::{ blocking, check_community_ban, check_community_deleted_or_removed, + check_post_deleted_or_removed, comment::*, get_local_user_view_from_jwt, send_local_notifs, @@ -50,6 +51,7 @@ impl PerformCrud for EditComment { ) .await?; check_community_deleted_or_removed(orig_comment.community.id, context.pool()).await?; + check_post_deleted_or_removed(&orig_comment.post)?; // Verify that only the creator can edit if local_user_view.person.id != orig_comment.creator.id {