ActivityPub.ex: filter domain blocked activities.

This commit is contained in:
eal 2018-06-03 23:33:33 +03:00
parent 4856962434
commit 9075b6d25b

View file

@ -439,11 +439,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
defp restrict_blocked(query, %{"blocking_user" => %User{info: info}}) do defp restrict_blocked(query, %{"blocking_user" => %User{info: info}}) do
blocks = info["blocks"] || [] blocks = info["blocks"] || []
domain_blocks = info["domain_blocks"] || []
from( from(
activity in query, activity in query,
where: fragment("not (? = ANY(?))", activity.actor, ^blocks), where: fragment("not (? = ANY(?))", activity.actor, ^blocks),
where: fragment("not (?->'to' \\?| ?)", activity.data, ^blocks) where: fragment("not (?->'to' \\?| ?)", activity.data, ^blocks),
where: fragment("not (? ~ ANY(?))", activity.actor, ^domain_blocks)
) )
end end