When banning from local communities, make sure they aren't deleted or removed. (#4784)

- This is causing some federation issues.
- Context: #4782
This commit is contained in:
Dessalines 2024-06-05 18:59:46 -04:00 committed by GitHub
parent bb94fb1c79
commit e8cfb5665f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -12,7 +12,14 @@ use crate::{
traits::{ApubActor, Crud, Followable}, traits::{ApubActor, Crud, Followable},
utils::{functions::lower, get_conn, naive_now, DbPool}, utils::{functions::lower, get_conn, naive_now, DbPool},
}; };
use diesel::{dsl::insert_into, result::Error, CombineDsl, ExpressionMethods, JoinOnDsl, QueryDsl}; use diesel::{
dsl::{insert_into, not},
result::Error,
CombineDsl,
ExpressionMethods,
JoinOnDsl,
QueryDsl,
};
use diesel_async::RunQueryDsl; use diesel_async::RunQueryDsl;
#[async_trait] #[async_trait]
@ -100,6 +107,8 @@ impl Person {
.inner_join(post::table) .inner_join(post::table)
.inner_join(community::table.on(post::community_id.eq(community::id))) .inner_join(community::table.on(post::community_id.eq(community::id)))
.filter(community::local.eq(true)) .filter(community::local.eq(true))
.filter(not(community::deleted))
.filter(not(community::removed))
.filter(comment::creator_id.eq(for_creator_id)) .filter(comment::creator_id.eq(for_creator_id))
.select(community::id) .select(community::id)
.union( .union(