diff options
author | rinpatch <rinpatch@sdf.org> | 2020-04-20 18:30:01 +0000 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2020-04-20 18:30:01 +0000 |
commit | e57c1b60e4a0f882d5217bf1be8b1a7240aa322d (patch) | |
tree | c434f6400c46b5b166434d43b6ffdab98631459c /lib | |
parent | 7e456ac7f622f5524b74fbe45a16a58eb30551ff (diff) | |
parent | bedc558809832ce6ef6063fe91656a0fff0e222c (diff) | |
download | pleroma-e57c1b60e4a0f882d5217bf1be8b1a7240aa322d.tar.gz |
Merge branch 'accept-deletes' into 'develop'
Always accept deletions through SimplePolicy, add :reject_deletes group
See merge request pleroma/pleroma!2371
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/mrf/simple_policy.ex | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex index 4edc007fd..b7dcb1b86 100644 --- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex @@ -149,6 +149,21 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do defp check_banner_removal(_actor_info, object), do: {:ok, object} @impl true + def filter(%{"type" => "Delete", "actor" => actor} = object) do + %{host: actor_host} = URI.parse(actor) + + reject_deletes = + Pleroma.Config.get([:mrf_simple, :reject_deletes]) + |> MRF.subdomains_regex() + + if MRF.subdomain_match?(reject_deletes, actor_host) do + {:reject, nil} + else + {:ok, object} + end + end + + @impl true def filter(%{"actor" => actor} = object) do actor_info = URI.parse(actor) |