aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAaron Tinio <aptinio@gmail.com>2019-05-15 07:59:24 +0800
committerAaron Tinio <aptinio@gmail.com>2019-05-16 05:53:51 +0800
commit2b6119dfbf47f118dfb102fc09f6450e59ccf15e (patch)
treef97ef60544b4726908f63839364462a806297ee4 /lib
parent64495b96e9159b88ef0b4a6486e60b54722664fb (diff)
downloadpleroma-2b6119dfbf47f118dfb102fc09f6450e59ccf15e.tar.gz
Restrict reblogs of activities from blocked domains
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex11
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