diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-06-29 22:30:48 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-06-29 22:30:48 -0500 |
commit | c6d4133727ba623d4c96358e3c4de5f2194d07f8 (patch) | |
tree | 6b3bcc31e4bc83b5bdc251e775692f354b41aafd /lib | |
parent | be2da95c36c14ac42eee4009c6e3e803bafd3d2c (diff) | |
download | pleroma-c6d4133727ba623d4c96358e3c4de5f2194d07f8.tar.gz |
Deletions: purge the user immediately
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index aebb5da95..406a7f5f9 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1724,31 +1724,27 @@ defmodule Pleroma.User do end def delete(%User{} = user) do + purge(user) BackgroundWorker.enqueue("delete_user", %{"user_id" => user.id}) end - defp delete_and_invalidate_cache(%User{} = user) do + defp delete_from_db(%User{} = user) do invalidate_cache(user) Repo.delete(user) end - defp delete_or_purge(%User{local: false} = user), do: purge(user) - - defp delete_or_purge(%User{local: true} = user) do + defp maybe_delete_from_db(%User{local: true} = user) do status = account_status(user) - case status do - :confirmation_pending -> - delete_and_invalidate_cache(user) - - :approval_pending -> - delete_and_invalidate_cache(user) - - _ -> - purge(user) + if status in [:confirmation_pending, :approval_pending] do + delete_from_db(user) + else + {:ok, user} end end + defp maybe_delete_from_db(user), do: {:ok, user} + def perform(:force_password_reset, user), do: force_password_reset(user) @spec perform(atom(), User.t()) :: {:ok, User.t()} @@ -1770,10 +1766,9 @@ defmodule Pleroma.User do delete_user_activities(user) delete_notifications_from_user_activities(user) - delete_outgoing_pending_follow_requests(user) - delete_or_purge(user) + maybe_delete_from_db(user) end def perform(:set_activation_async, user, status), do: set_activation(user, status) |