1 defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do
3 @behaviour Pleroma.Web.ActivityPub.MRF
6 def filter(%{"type" => "Create"} = object) do
7 user = User.get_cached_by_ap_id(object["actor"])
8 public = "https://www.w3.org/ns/activitystreams#Public"
10 # Determine visibility
13 public in object["to"] -> "public"
14 public in object["cc"] -> "unlisted"
15 user.follower_address in object["to"] -> "followers"
19 policy = Pleroma.Config.get(:mrf_rejectnonpublic)
29 with true <- Keyword.get(policy, :allow_followersonly) do
36 with true <- Keyword.get(policy, :allow_direct) do
45 def filter(object), do: {:ok, object}