aboutsummaryrefslogtreecommitdiff
path: root/static/modules/no_incoming_deletes.ex
diff options
context:
space:
mode:
authordcc <dcc@logografos.com>2023-09-02 00:52:52 -0700
committerdcc <dcc@logografos.com>2023-09-02 00:52:52 -0700
commit3a4773c3c2bd0bbef244eb519b07208da9108e49 (patch)
tree973567a6f3abb37bfb0f785b1cad14ed55840ef5 /static/modules/no_incoming_deletes.ex
downloadanni-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.ex24
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