diff options
author | Francis Dinh <normandy@firemail.cc> | 2018-05-21 04:35:43 -0400 |
---|---|---|
committer | Francis Dinh <normandy@firemail.cc> | 2018-05-21 04:35:43 -0400 |
commit | 25733322140d13a08e723b9366646cf971a84381 (patch) | |
tree | a3ce94b351be101edd557343b6fc808ad2a373cc /lib | |
parent | c8a16f334dd6df12f90ee7f45b509642c8098b5b (diff) | |
download | pleroma-25733322140d13a08e723b9366646cf971a84381.tar.gz |
Add undo block handler
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 20b1603df..24e876efb 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -247,10 +247,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do "object" => %{"type" => "Follow", "object" => followed}, "actor" => follower, "id" => id - } = data + } = _data ) do - with %User{local: true} = followed = User.get_cached_by_ap_id(followed), - %User{} = follower = User.get_or_fetch_by_ap_id(follower), + with %User{local: true} = followed <- User.get_cached_by_ap_id(followed), + %User{} = follower <- User.get_or_fetch_by_ap_id(follower), {:ok, activity} <- ActivityPub.unfollow(follower, followed, id, false) do User.unfollow(follower, followed) {:ok, activity} @@ -260,6 +260,23 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do end def handle_incoming( + %{ + "type" => "Undo", + "object" => %{"type" => "Block", "object" => blocked}, + "actor" => blocker, + "id" => id + } = _data + ) do + with %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 + {:ok, activity} + else + e -> :error + end + end + + 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), |