logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: e1fe46e1cfccb7971032ecfa04426413f0c00ac6
parent: 5d6d86bf00fa533d505ffe5fc3df6c3eadae5739
Author: lambda <pleromagit@rogerbraun.net>
Date:   Sat, 26 May 2018 09:50:54 +0000

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:

Mconfig/config.exs2++
Mlib/pleroma/web/activity_pub/transmogrifier.ex9+++++++--
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/config/config.exs b/config/config.exs @@ -56,6 +56,8 @@ config :pleroma, :instance, rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy, public: true +config :pleroma, :activitypub, accept_blocks: true + config :pleroma, :mrf_simple, media_removal: [], media_nsfw: [], diff --git 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)