|
|
@@ -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) |
|
|
|