1 defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do
3 @behaviour Pleroma.Web.ActivityPub.MRF
5 @mrf_rejectnonpublic Application.get_env(:pleroma, :mrf_rejectnonpublic)
6 @allow_followersonly Keyword.get(@mrf_rejectnonpublic, :allow_followersonly)
7 @allow_direct Keyword.get(@mrf_rejectnonpublic, :allow_direct)
11 if object["type"] == "Create" do
12 user = User.get_cached_by_ap_id(object["actor"])
13 public = "https://www.w3.org/ns/activitystreams#Public"
15 # Determine visibility
18 public in object["to"] -> "public"
19 public in object["cc"] -> "unlisted"
20 user.follower_address in object["to"] -> "followers"
32 with true <- @allow_followersonly do
39 with true <- @allow_direct do