From ee7ae3cd4fd504fff580c9e32c54f0d0c19fb078 Mon Sep 17 00:00:00 2001 From: silverpill Date: Wed, 23 Feb 2022 23:31:56 +0000 Subject: [PATCH] Implement instance blocks --- src/activitypub/receiver.rs | 3 +++ src/config.rs | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/activitypub/receiver.rs b/src/activitypub/receiver.rs index 9cdb821..501de95 100644 --- a/src/activitypub/receiver.rs +++ b/src/activitypub/receiver.rs @@ -438,6 +438,9 @@ pub async fn receive_activity( })?; let signer_id = signer.actor_id(&config.instance_url()); log::debug!("activity signed by {}", signer_id); + if config.blocked_instances.iter().any(|instance| signer.acct.contains(instance)) { + return Err(HttpError::ValidationError("instance is blocked".into())); + }; let activity: Activity = serde_json::from_value(activity_raw.clone()) .map_err(|_| ValidationError("invalid activity"))?; diff --git a/src/config.rs b/src/config.rs index 86cadf2..6947ae5 100644 --- a/src/config.rs +++ b/src/config.rs @@ -124,6 +124,9 @@ pub struct Config { #[serde(default = "default_post_character_limit")] pub post_character_limit: usize, + #[serde(default)] + pub blocked_instances: Vec, + // Blockchain integration pub blockchain: Option,