diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-04-13 13:48:32 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-04-20 10:11:06 -0500 |
commit | b54c8813d632cb44c7deb207e91bd32f01f33794 (patch) | |
tree | 5150c7ce7f0e5affbdfae42cfa965a115926fc89 /lib | |
parent | 9a3c74b244bce6097a8c6da99692bfc9973e1ec8 (diff) | |
download | pleroma-b54c8813d632cb44c7deb207e91bd32f01f33794.tar.gz |
Add :reject_deletes option to SimplePolicy
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/mrf/simple_policy.ex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex index b23f263f5..b7dcb1b86 100644 --- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex @@ -149,7 +149,19 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do defp check_banner_removal(_actor_info, object), do: {:ok, object} @impl true - def filter(%{"type" => "Delete"} = object), do: {:ok, object} + 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 |