From 3fa713f4146ed6405ba57439e0099d67cedf232d Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sat, 15 Apr 2023 20:23:36 -0400 Subject: [PATCH] Temporary fix for hiding deleted posts. #2624 (#2811) --- crates/db_views/src/post_view.rs | 51 +++++--------------------------- 1 file changed, 7 insertions(+), 44 deletions(-) diff --git a/crates/db_views/src/post_view.rs b/crates/db_views/src/post_view.rs index c87fbf0ab..06cd4f294 100644 --- a/crates/db_views/src/post_view.rs +++ b/crates/db_views/src/post_view.rs @@ -74,7 +74,6 @@ impl PostView { // The left join below will return None in this case let person_id_join = my_person_id.unwrap_or(PersonId(-1)); - let person_alias_1 = diesel::alias!(person as person1); let mut query = post::table .find(post_id) .inner_join(person::table) @@ -134,14 +133,6 @@ impl PostView { .and(person_post_aggregates::person_id.eq(person_id_join)), ), ) - // Used to check if you are the post creator - .left_join( - person_alias_1.on( - post::creator_id - .eq(person_alias_1.field(person::id)) - .and(person_alias_1.field(person::id).eq(person_id_join)), - ), - ) .select(( post::all_columns, person::all_columns, @@ -160,21 +151,11 @@ impl PostView { )) .into_boxed(); - // If you are not a moderator, exclude deleted or removed content + // Hide deleted and removed for non-admins or mods if !is_mod_or_admin.unwrap_or(true) { - // If you are not the creator, then remove the other fields. query = query - .filter( - person_alias_1.field(person::id).is_null().and( - post::removed - .eq(false) - .and(post::deleted.eq(false)) - .and(community::removed.eq(false)) - .and(community::deleted.eq(false)), - ), - ) - // If you are the creator, keep them - .or_filter(person_alias_1.field(person::id).is_not_null()) + .filter(community::removed.eq(false)) + .filter(community::deleted.eq(false)); } let ( @@ -241,7 +222,6 @@ impl<'a> PostQuery<'a> { // The left join below will return None in this case let person_id_join = self.local_user.map(|l| l.person_id).unwrap_or(PersonId(-1)); let local_user_id_join = self.local_user.map(|l| l.id).unwrap_or(LocalUserId(-1)); - let person_alias_1 = diesel::alias!(person as person1); let mut query = post::table .inner_join(person::table) @@ -315,14 +295,6 @@ impl<'a> PostQuery<'a> { .and(local_user_language::local_user_id.eq(local_user_id_join)), ), ) - // Used to check if you are the post creator - .left_join( - person_alias_1.on( - post::creator_id - .eq(person_alias_1.field(person::id)) - .and(person_alias_1.field(person::id).eq(person_id_join)), - ), - ) .select(( post::all_columns, person::all_columns, @@ -341,21 +313,12 @@ impl<'a> PostQuery<'a> { )) .into_boxed(); - // If you are not a moderator, exclude deleted or removed content + // Hide deleted and removed for non-admins or mods + // TODO This eventually needs to show posts where you are the creator if !self.is_mod_or_admin.unwrap_or(true) { - // If you are not the creator, then remove the other fields. query = query - .filter( - person_alias_1.field(person::id).is_null().and( - post::removed - .eq(false) - .and(post::deleted.eq(false)) - .and(community::removed.eq(false)) - .and(community::deleted.eq(false)), - ), - ) - // If you are the creator, keep them - .or_filter(person_alias_1.field(person::id).is_not_null()) + .filter(community::removed.eq(false)) + .filter(community::deleted.eq(false)); } if let Some(listing_type) = self.listing_type {