Browse Source

add allow_followersonly and allow_direct options for configuring mrf_rejectnonpublic

tags/v0.9.9
squidboi 6 years ago
parent
commit
07f0cfa53f
No known key found for this signature in database GPG Key ID: 18925A9B65D2457
2 changed files with 27 additions and 3 deletions
  1. +4
    -0
      config/config.exs
  2. +23
    -3
      lib/pleroma/web/activity_pub/mrf/reject_non_public.ex

+ 4
- 0
config/config.exs View File

@@ -59,6 +59,10 @@ config :pleroma, :instance,

config :pleroma, :activitypub, accept_blocks: true

config :pleroma, :mrf_rejectnonpublic,
allow_followersonly: false,
allow_direct: false

config :pleroma, :mrf_simple,
media_removal: [],
media_nsfw: [],


+ 23
- 3
lib/pleroma/web/activity_pub/mrf/reject_non_public.ex View File

@@ -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}


Loading…
Cancel
Save