honour domain blocks on streaming notifications

This commit is contained in:
Sadposter 2019-07-24 11:09:06 +01:00
commit 4af4f6166b
2 changed files with 21 additions and 0 deletions

View file

@ -234,10 +234,13 @@ defmodule Pleroma.Web.Streamer do
blocks = user.info.blocks || []
mutes = user.info.mutes || []
reblog_mutes = user.info.muted_reblogs || []
domain_blocks = Pleroma.Web.ActivityPub.MRF.subdomains_regex(user.info.domain_blocks)
%{host: host} = URI.parse(parent.data["actor"])
with parent when not is_nil(parent) <- Object.normalize(item),
true <- Enum.all?([blocks, mutes, reblog_mutes], &(item.actor not in &1)),
true <- Enum.all?([blocks, mutes], &(parent.data["actor"] not in &1)),
false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, host),
true <- thread_containment(item, user) do
true
else