aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-05-26 09:50:54 +0000
committerlambda <pleromagit@rogerbraun.net>2018-05-26 09:50:54 +0000
commite1fe46e1cfccb7971032ecfa04426413f0c00ac6 (patch)
tree7b8ed19a65cc2250a7f88ff36e7ee533e5c4907e /lib
parent5d6d86bf00fa533d505ffe5fc3df6c3eadae5739 (diff)
parent1c926c7b60b999311d01266bb65187e1be5adc1e (diff)
downloadpleroma-e1fe46e1cfccb7971032ecfa04426413f0c00ac6.tar.gz
Merge branch 'feature/mastodon-s2s-block-opt-out' into 'develop'
activitypub: allow mastodon S2S block extension support to be disabled See merge request pleroma/pleroma!176
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 803445011..eada4334e 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -259,6 +259,9 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
end
end
+ @ap_config Application.get_env(:pleroma, :activitypub)
+ @accept_blocks Keyword.get(@ap_config, :accept_blocks)
+
def handle_incoming(
%{
"type" => "Undo",
@@ -267,7 +270,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
"id" => id
} = _data
) do
- with %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked),
+ with true <- @accept_blocks,
+ %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked),
%User{} = blocker <- User.get_or_fetch_by_ap_id(blocker),
{:ok, activity} <- ActivityPub.unblock(blocker, blocked, id, false) do
User.unblock(blocker, blocked)
@@ -280,7 +284,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
def handle_incoming(
%{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data
) do
- with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked),
+ with true <- @accept_blocks,
+ %User{local: true} = blocked = User.get_cached_by_ap_id(blocked),
%User{} = blocker = User.get_or_fetch_by_ap_id(blocker),
{:ok, activity} <- ActivityPub.block(blocker, blocked, id, false) do
User.unfollow(blocker, blocked)