Dont serve apub json for removed objects (ref #2522) (#2538)

This commit is contained in:
Nutomic 2022-11-05 00:57:28 +00:00 committed by GitHub
parent 50a2233b52
commit a0a84d91ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 3 deletions

View file

@ -30,7 +30,7 @@ pub(crate) async fn get_apub_comment(
return Err(NotFound.into()); return Err(NotFound.into());
} }
if !comment.deleted { if !comment.deleted && !comment.removed {
Ok(create_apub_response(&comment.into_apub(&**context).await?)) Ok(create_apub_response(&comment.into_apub(&**context).await?))
} else { } else {
Ok(create_apub_tombstone_response(comment.ap_id.clone())) Ok(create_apub_tombstone_response(comment.ap_id.clone()))

View file

@ -40,7 +40,7 @@ pub(crate) async fn get_apub_community_http(
.await?? .await??
.into(); .into();
if !community.deleted { if !community.deleted && !community.removed {
let apub = community.into_apub(&**context).await?; let apub = community.into_apub(&**context).await?;
Ok(create_apub_response(&apub)) Ok(create_apub_response(&apub))
@ -83,6 +83,10 @@ pub(crate) async fn get_apub_community_outbox(
Community::read_from_name(conn, &info.community_name, false) Community::read_from_name(conn, &info.community_name, false)
}) })
.await??; .await??;
if community.deleted || community.removed {
return Err(LemmyError::from_message("deleted"));
}
let id = ObjectId::new(generate_outbox_url(&community.actor_id)?); let id = ObjectId::new(generate_outbox_url(&community.actor_id)?);
let outbox_data = CommunityContext(community.into(), context.get_ref().clone()); let outbox_data = CommunityContext(community.into(), context.get_ref().clone());
let outbox: ApubCommunityOutbox = id let outbox: ApubCommunityOutbox = id
@ -101,6 +105,10 @@ pub(crate) async fn get_apub_community_moderators(
}) })
.await?? .await??
.into(); .into();
if community.deleted || community.removed {
return Err(LemmyError::from_message("deleted"));
}
let id = ObjectId::new(generate_outbox_url(&community.actor_id)?); let id = ObjectId::new(generate_outbox_url(&community.actor_id)?);
let outbox_data = CommunityContext(community, context.get_ref().clone()); let outbox_data = CommunityContext(community, context.get_ref().clone());
let moderators: ApubCommunityModerators = id let moderators: ApubCommunityModerators = id

View file

@ -30,7 +30,7 @@ pub(crate) async fn get_apub_post(
return Err(NotFound.into()); return Err(NotFound.into());
} }
if !post.deleted { if !post.deleted && !post.removed {
Ok(create_apub_response(&post.into_apub(&context).await?)) Ok(create_apub_response(&post.into_apub(&context).await?))
} else { } else {
Ok(create_apub_tombstone_response(post.ap_id.clone())) Ok(create_apub_tombstone_response(post.ap_id.clone()))