X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Flib.rs;h=d277a3bc80b1d13c5ffb5720e8f68d08c412a9e3;hb=3735c6fabfd85d6c98c2fc126b70e593db532eb8;hp=53fe7cd3fe54e79b2b38ce5278cdeab10d58c3a2;hpb=47f4aa3550e7e79736f87673e007f930a9442f1f;p=lemmy.git diff --git a/crates/apub/src/lib.rs b/crates/apub/src/lib.rs index 53fe7cd3..d277a3bc 100644 --- a/crates/apub/src/lib.rs +++ b/crates/apub/src/lib.rs @@ -114,13 +114,13 @@ fn check_apub_id_valid( } if let Some(blocked) = local_site_data.blocked_instances.as_ref() { - if blocked.contains(&domain) { + if blocked.iter().any(|i| domain.eq(&i.domain)) { return Err("Domain is blocked"); } } if let Some(allowed) = local_site_data.allowed_instances.as_ref() { - if !allowed.contains(&domain) { + if !allowed.iter().any(|i| domain.eq(&i.domain)) { return Err("Domain is not in allowlist"); } } @@ -131,8 +131,8 @@ fn check_apub_id_valid( #[derive(Clone)] pub(crate) struct LocalSiteData { local_site: Option, - allowed_instances: Option>, - blocked_instances: Option>, + allowed_instances: Option>, + blocked_instances: Option>, } pub(crate) async fn fetch_local_site_data( @@ -175,7 +175,10 @@ pub(crate) fn check_apub_id_valid_with_strictness( if is_strict { // need to allow this explicitly because apub receive might contain objects from our local // instance. - let mut allowed_and_local = allowed.clone(); + let mut allowed_and_local = allowed + .iter() + .map(|i| i.domain.clone()) + .collect::>(); allowed_and_local.push(local_instance); if !allowed_and_local.contains(&domain) {