aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2018-09-10 01:13:38 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2018-09-10 01:16:03 +0000
commite0b8c0ccba57cb8f920929c61b64c523f431edec (patch)
tree91a2a6005be6ec3febaca524f587da2cc3bb1515
parent88094c266d74acccc6efa304dc0bd85638849a87 (diff)
downloadpleroma-e0b8c0ccba57cb8f920929c61b64c523f431edec.tar.gz
MRF: reject non-public: use pattern match to remove unnecessary if block
-rw-r--r--lib/pleroma/web/activity_pub/mrf/reject_non_public.ex65
1 files changed, 32 insertions, 33 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex
index b6936fe90..129d04617 100644
--- a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex
+++ b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex
@@ -7,43 +7,42 @@ defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do
@allow_direct Keyword.get(@mrf_rejectnonpublic, :allow_direct)
@impl true
- def filter(object) do
- if object["type"] == "Create" do
- user = User.get_cached_by_ap_id(object["actor"])
- public = "https://www.w3.org/ns/activitystreams#Public"
-
- # Determine visibility
- visibility =
- cond do
- public in object["to"] -> "public"
- public in object["cc"] -> "unlisted"
- user.follower_address in object["to"] -> "followers"
- true -> "direct"
- end
+ def filter(%{"type" => "Create"} = object) do
+ user = User.get_cached_by_ap_id(object["actor"])
+ public = "https://www.w3.org/ns/activitystreams#Public"
- case visibility do
- "public" ->
- {:ok, object}
+ # Determine visibility
+ visibility =
+ cond do
+ public in object["to"] -> "public"
+ public in object["cc"] -> "unlisted"
+ user.follower_address in object["to"] -> "followers"
+ true -> "direct"
+ end
- "unlisted" ->
+ case visibility do
+ "public" ->
+ {:ok, object}
+
+ "unlisted" ->
+ {:ok, object}
+
+ "followers" ->
+ with true <- @allow_followersonly do
{:ok, object}
+ else
+ _e -> {:reject, nil}
+ end
- "followers" ->
- with true <- @allow_followersonly do
- {:ok, object}
- else
- _e -> {:reject, nil}
- end
-
- "direct" ->
- with true <- @allow_direct do
- {:ok, object}
- else
- _e -> {:reject, nil}
- end
- end
- else
- {:ok, object}
+ "direct" ->
+ with true <- @allow_direct do
+ {:ok, object}
+ else
+ _e -> {:reject, nil}
+ end
end
end
+
+ @impl true
+ def filter(object), do: {:ok, object}
end