diff options
author | Aaron Tinio <aptinio@gmail.com> | 2019-05-15 07:59:24 +0800 |
---|---|---|
committer | Aaron Tinio <aptinio@gmail.com> | 2019-05-16 05:53:51 +0800 |
commit | 2b6119dfbf47f118dfb102fc09f6450e59ccf15e (patch) | |
tree | f97ef60544b4726908f63839364462a806297ee4 /lib | |
parent | 64495b96e9159b88ef0b4a6486e60b54722664fb (diff) | |
download | pleroma-2b6119dfbf47f118dfb102fc09f6450e59ccf15e.tar.gz |
Restrict reblogs of activities from blocked domains
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 233fee4fa..6087a1cdc 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -752,6 +752,14 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do from( activity in query, + inner_join: o in Object, + on: + fragment( + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", + o.data, + activity.data, + activity.data + ), where: fragment("not (? = ANY(?))", activity.actor, ^blocks), where: fragment("not (? && ?)", activity.recipients, ^blocks), where: @@ -761,7 +769,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do activity.data, ^blocks ), - where: fragment("not (split_part(?, '/', 3) = ANY(?))", activity.actor, ^domain_blocks) + where: fragment("not (split_part(?, '/', 3) = ANY(?))", activity.actor, ^domain_blocks), + where: fragment("not (split_part(?->>'actor', '/', 3) = ANY(?))", o.data, ^domain_blocks) ) end |