* Allow comment replies from blocked users. Fixes #1793 * Clearer check block.
This commit is contained in:
parent
040770d7ba
commit
4e9ecb2632
2 changed files with 18 additions and 9 deletions
|
@ -4,7 +4,6 @@ use lemmy_api_common::{
|
|||
blocking,
|
||||
check_community_ban,
|
||||
check_community_deleted_or_removed,
|
||||
check_person_block,
|
||||
check_post_deleted_or_removed,
|
||||
comment::*,
|
||||
get_local_user_view_from_jwt,
|
||||
|
@ -66,8 +65,6 @@ impl PerformCrud for CreateComment {
|
|||
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?;
|
||||
|
||||
// Check if post is locked, no new comments
|
||||
if post.locked {
|
||||
return Err(ApiError::err_plain("locked").into());
|
||||
|
@ -80,8 +77,6 @@ impl PerformCrud for CreateComment {
|
|||
.await?
|
||||
.map_err(|e| ApiError::err("couldnt_create_comment", e))?;
|
||||
|
||||
check_person_block(local_user_view.person.id, parent.creator_id, context.pool()).await?;
|
||||
|
||||
// Strange issue where sometimes the post ID is incorrect
|
||||
if parent.post_id != post_id {
|
||||
return Err(ApiError::err_plain("couldnt_create_comment").into());
|
||||
|
|
|
@ -5,6 +5,7 @@ use crate::{
|
|||
};
|
||||
use lemmy_api_common::{
|
||||
blocking,
|
||||
check_person_block,
|
||||
comment::CommentResponse,
|
||||
community::CommunityResponse,
|
||||
person::PrivateMessageResponse,
|
||||
|
@ -233,11 +234,18 @@ pub async fn send_local_notifs(
|
|||
let parent_comment =
|
||||
blocking(context.pool(), move |conn| Comment::read(conn, parent_id)).await?;
|
||||
if let Ok(parent_comment) = parent_comment {
|
||||
// Get the parent commenter local_user
|
||||
let parent_creator_id = parent_comment.creator_id;
|
||||
|
||||
// Only add to recipients if that person isn't blocked
|
||||
let creator_blocked = check_person_block(person.id, parent_creator_id, context.pool())
|
||||
.await
|
||||
.is_err();
|
||||
|
||||
// Don't send a notif to yourself
|
||||
if parent_comment.creator_id != person.id {
|
||||
// Get the parent commenter local_user
|
||||
if parent_comment.creator_id != person.id && !creator_blocked {
|
||||
let user_view = blocking(context.pool(), move |conn| {
|
||||
LocalUserView::read_person(conn, parent_comment.creator_id)
|
||||
LocalUserView::read_person(conn, parent_creator_id)
|
||||
})
|
||||
.await?;
|
||||
if let Ok(parent_user_view) = user_view {
|
||||
|
@ -257,8 +265,14 @@ pub async fn send_local_notifs(
|
|||
}
|
||||
}
|
||||
// Its a post
|
||||
// Don't send a notif to yourself
|
||||
None => {
|
||||
if post.creator_id != person.id {
|
||||
// Only add to recipients if that person isn't blocked
|
||||
let creator_blocked = check_person_block(person.id, post.creator_id, context.pool())
|
||||
.await
|
||||
.is_err();
|
||||
|
||||
if post.creator_id != person.id && !creator_blocked {
|
||||
let creator_id = post.creator_id;
|
||||
let parent_user = blocking(context.pool(), move |conn| {
|
||||
LocalUserView::read_person(conn, creator_id)
|
||||
|
|
Loading…
Reference in a new issue