aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-06-16 10:39:36 +0000
committerlambda <pleromagit@rogerbraun.net>2018-06-16 10:39:36 +0000
commit1ea4a18ad859600841860cdd1a981da868aa18a0 (patch)
treec498b0fb3c5297d0a6e6e9627ef233c11fc227eb /lib
parenta938d07df1679efd78e1b7c10e149270489761f7 (diff)
parent2586426fa0ee4732cb9d142a55bfd4f20f271fa9 (diff)
downloadpleroma-1ea4a18ad859600841860cdd1a981da868aa18a0.tar.gz
Merge branch 'feature/configure-mrf-rejectnonpublic' into 'develop'
Configs for mrf_rejectnonpublic See merge request pleroma/pleroma!205
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/mrf/reject_non_public.ex26
1 files changed, 23 insertions, 3 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 879cbe6de..b6936fe90 100644
--- a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex
+++ b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex
@@ -2,6 +2,10 @@ defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do
alias Pleroma.User
@behaviour Pleroma.Web.ActivityPub.MRF
+ @mrf_rejectnonpublic Application.get_env(:pleroma, :mrf_rejectnonpublic)
+ @allow_followersonly Keyword.get(@mrf_rejectnonpublic, :allow_followersonly)
+ @allow_direct Keyword.get(@mrf_rejectnonpublic, :allow_direct)
+
@impl true
def filter(object) do
if object["type"] == "Create" do
@@ -18,9 +22,25 @@ defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do
end
case visibility do
- "public" -> {:ok, object}
- "unlisted" -> {:ok, object}
- _ -> {:reject, nil}
+ "public" ->
+ {:ok, object}
+
+ "unlisted" ->
+ {:ok, object}
+
+ "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}