check both item and parent domain blocks
authorsadposter <hannah+pleroma@coffee-and-dreams.uk>
Wed, 24 Jul 2019 10:35:16 +0000 (11:35 +0100)
committersadposter <hannah+pleroma@coffee-and-dreams.uk>
Wed, 24 Jul 2019 10:35:16 +0000 (11:35 +0100)
lib/pleroma/web/streamer.ex
test/web/streamer_test.exs

index e4259e869b9eed7420801b21f95981aa54a95473..9ee33103043415e7c67dfd494b914cf842139240 100644 (file)
@@ -239,8 +239,10 @@ defmodule Pleroma.Web.Streamer do
     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)),
-         %{host: host} <- URI.parse(parent.data["actor"]),
-         false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, host),
+         %{host: item_host} <- URI.parse(item.actor),
+         %{host: parent_host} <- URI.parse(parent.data["actor"]),
+         false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, item_host),
+         false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, parent_host),
          true <- thread_containment(item, user) do
       true
     else
index 95d5e5d58f6aaefd01de25e99759c8a816a0fee9..d47b37efb9815ca9142da160d3eca94b7703978c 100644 (file)
@@ -115,9 +115,10 @@ defmodule Pleroma.Web.StreamerTest do
         %{transport_pid: task.pid, assigns: %{user: user}}
       )
 
-      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"})
       {:ok, user} = User.block_domain(user, "hecking-lewd-place.com")
+      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"})
       {:ok, notif, _} = CommonAPI.favorite(activity.id, user2)
+
       Streamer.stream("user:notification", notif)
       Task.await(task)
     end