aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2019-02-04 17:03:34 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2019-02-04 17:04:05 +0000
commit9a69f08e86ce79a36dfe3d1a6f4c20b0a8a0f3c6 (patch)
tree508cf37df5d0fef4ebe68b01b61bee3f40f14d89
parent084bb8ccd546410c77cf37e1a9850b83e3782e81 (diff)
downloadpleroma-9a69f08e86ce79a36dfe3d1a6f4c20b0a8a0f3c6.tar.gz
activitypub: mrf: tag policy: add support for processing follow requests
-rw-r--r--lib/pleroma/web/activity_pub/mrf/tag_policy.ex18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/tag_policy.ex b/lib/pleroma/web/activity_pub/mrf/tag_policy.ex
index e05663371..2af36616f 100644
--- a/lib/pleroma/web/activity_pub/mrf/tag_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/tag_policy.ex
@@ -88,7 +88,20 @@ defmodule Pleroma.Web.ActivityPub.MRF.TagPolicy do
defp process_tag(_, message), do: {:ok, message}
@impl true
- def filter(%{"actor" => actor} = message) do
+ def filter(%{"object" => target_actor, "type" => "Follow"} = message) do
+ User.get_cached_by_ap_id(target_actor)
+ |> get_tags()
+ |> Enum.reduce({:ok, message}, fn
+ tag, {:ok, message} ->
+ process_tag(tag, message)
+
+ _, error ->
+ error
+ end)
+ end
+
+ @impl true
+ def filter(%{"actor" => actor, "type" => "Create"} = message) do
User.get_cached_by_ap_id(actor)
|> get_tags()
|> Enum.reduce({:ok, message}, fn
@@ -99,4 +112,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.TagPolicy do
error
end)
end
+
+ @impl true
+ def filter(message), do: {:ok, message}
end