diff options
author | Mark Felder <feld@feld.me> | 2024-08-28 17:24:59 -0400 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2024-08-28 17:24:59 -0400 |
commit | 6ae629cfe072d236453d256017618fe9a8c44755 (patch) | |
tree | 78b822ec32289eedbbfbd1164f53a2458ea9c23c /lib | |
parent | bb2f4a76b3af4ad5f0e2950ef8dc2567c6ad69ff (diff) | |
download | pleroma-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.ex | 4 |
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 |