diff options
author | lambda <pleromagit@rogerbraun.net> | 2018-06-16 10:39:36 +0000 |
---|---|---|
committer | lambda <pleromagit@rogerbraun.net> | 2018-06-16 10:39:36 +0000 |
commit | 1ea4a18ad859600841860cdd1a981da868aa18a0 (patch) | |
tree | c498b0fb3c5297d0a6e6e9627ef233c11fc227eb /lib | |
parent | a938d07df1679efd78e1b7c10e149270489761f7 (diff) | |
parent | 2586426fa0ee4732cb9d142a55bfd4f20f271fa9 (diff) | |
download | pleroma-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.ex | 26 |
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} |