summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2024-08-28 17:24:59 -0400
committerMark Felder <feld@feld.me>2024-08-28 17:24:59 -0400
commit6ae629cfe072d236453d256017618fe9a8c44755 (patch)
tree78b822ec32289eedbbfbd1164f53a2458ea9c23c /lib
parentbb2f4a76b3af4ad5f0e2950ef8dc2567c6ad69ff (diff)
downloadpleroma-6ae629cfe072d236453d256017618fe9a8c44755.tar.gz
pleroma-6ae629cfe072d236453d256017618fe9a8c44755.zip
Cancel ReceiverWorker jobs if the user account has been disabled / deactivated
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/workers/receiver_worker.ex4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex
index 7dce02a5f..80518f6fd 100644
--- a/lib/pleroma/workers/receiver_worker.ex
+++ b/lib/pleroma/workers/receiver_worker.ex
@@ -33,7 +33,8 @@ defmodule Pleroma.Workers.ReceiverWorker do
query_string: query_string
}
- with {:ok, %User{} = _actor} <- User.get_or_fetch_by_ap_id(conn_data.params["actor"]),
+ with {:ok, %User{} = actor} <- User.get_or_fetch_by_ap_id(conn_data.params["actor"]),
+ {:user_active, true} <- {:user_active, match?(true, actor.is_active)},
{:ok, _public_key} <- Signature.refetch_public_key(conn_data),
{:signature, true} <- {:signature, Signature.validate_signature(conn_data)},
{:ok, res} <- Federator.perform(:incoming_ap_doc, params) do
@@ -70,6 +71,7 @@ defmodule Pleroma.Workers.ReceiverWorker do
{:error, {:side_effects, {:error, :no_object_actor}} = reason} -> {:cancel, reason}
{:error, :not_found} = reason -> {:cancel, reason}
{:error, :forbidden} = reason -> {:cancel, reason}
+ {:user_active, false} = reason -> {:cancel, reason}
{:error, _} = e -> e
e -> {:error, e}
end