From becf75d1f9df5b6c57c6f7369a53681b2d33929d Mon Sep 17 00:00:00 2001 From: Alex Maras Date: Thu, 15 Jun 2023 19:39:58 +0800 Subject: [PATCH] Fix Hidden communities showing in community list (#3094) * Only show hidden communities when explicitly searching for them rather then in "all" * dont set hidden to false when creating and updating - let DB set default * lint --------- Co-authored-by: Alex Maras --- crates/apub/src/protocol/objects/group.rs | 4 ++-- crates/db_views_actor/src/community_view.rs | 17 +++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/crates/apub/src/protocol/objects/group.rs b/crates/apub/src/protocol/objects/group.rs index f077a501..2b32915a 100644 --- a/crates/apub/src/protocol/objects/group.rs +++ b/crates/apub/src/protocol/objects/group.rs @@ -112,7 +112,7 @@ impl Group { actor_id: Some(self.id.into()), local: Some(false), private_key: None, - hidden: Some(false), + hidden: None, public_key: self.public_key.public_key_pem, last_refreshed_at: Some(naive_now()), icon: self.icon.map(|i| i.url.into()), @@ -143,7 +143,7 @@ impl Group { actor_id: Some(self.id.into()), local: None, private_key: None, - hidden: Some(false), + hidden: None, public_key: Some(self.public_key.public_key_pem), last_refreshed_at: Some(naive_now()), icon: Some(self.icon.map(|i| i.url.into())), diff --git a/crates/db_views_actor/src/community_view.rs b/crates/db_views_actor/src/community_view.rs index abab023a..ee6066c2 100644 --- a/crates/db_views_actor/src/community_view.rs +++ b/crates/db_views_actor/src/community_view.rs @@ -173,22 +173,19 @@ impl<'a> CommunityQuery<'a> { if !self.is_mod_or_admin.unwrap_or(true) { query = query .filter(community::removed.eq(false)) - .filter(community::deleted.eq(false)); + .filter(community::deleted.eq(false)) + .filter( + community::hidden + .eq(false) + .or(community_follower::person_id.eq(person_id_join)), + ); } match self.sort.unwrap_or(SortType::Hot) { SortType::New => query = query.order_by(community::published.desc()), SortType::TopAll => query = query.order_by(community_aggregates::subscribers.desc()), SortType::TopMonth => query = query.order_by(community_aggregates::users_active_month.desc()), - SortType::Hot => { - query = query.order_by(community_aggregates::hot_rank.desc()); - // Don't show hidden communities in Hot (trending) - query = query.filter( - community::hidden - .eq(false) - .or(community_follower::person_id.eq(person_id_join)), - ); - } + SortType::Hot => query = query.order_by(community_aggregates::hot_rank.desc()), // Covers all other sorts _ => query = query.order_by(community_aggregates::users_active_month.desc()), };