diff options
| author | dcc <dcc@logografos.com> | 2023-09-02 00:52:52 -0700 |
|---|---|---|
| committer | dcc <dcc@logografos.com> | 2023-09-02 00:52:52 -0700 |
| commit | 3a4773c3c2bd0bbef244eb519b07208da9108e49 (patch) | |
| tree | 973567a6f3abb37bfb0f785b1cad14ed55840ef5 /static/modules/no_incoming_deletes.ex | |
| download | anni-3a4773c3c2bd0bbef244eb519b07208da9108e49.tar.gz anni-3a4773c3c2bd0bbef244eb519b07208da9108e49.tar.bz2 anni-3a4773c3c2bd0bbef244eb519b07208da9108e49.zip | |
First
Diffstat (limited to 'static/modules/no_incoming_deletes.ex')
| -rw-r--r-- | static/modules/no_incoming_deletes.ex | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/static/modules/no_incoming_deletes.ex b/static/modules/no_incoming_deletes.ex new file mode 100644 index 0000000..0c5d9e7 --- /dev/null +++ b/static/modules/no_incoming_deletes.ex @@ -0,0 +1,24 @@ +# THE "CLOUD" IS JUST SOMEONE ELSE'S COMPUTER +# have we been using the same internet? +defmodule Pleroma.Web.ActivityPub.MRF.NoIncomingDeletes do + require Logger + @behaviour Pleroma.Web.ActivityPub.MRF.Policy + + @impl true + def filter(%{"type" => "Delete", "actor" => actor} = object) do + actor_info = URI.parse(actor) + if(actor_info.host == "annihilation.social") do + Logger.warn("DELETE from ANNI, not rejecting: #{inspect(object)}") + {:ok, object} + else + Logger.warn("DELETE rejected: #{inspect(object)}") + {:reject, object} + end + end + + @impl true + def filter(object), do: {:ok, object} + + @impl true + def describe, do: {:ok, %{}} +end |
