aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-07-17 12:19:41 -0500
committerAlex Gleason <alex@alexgleason.me>2020-07-17 12:19:41 -0500
commit57568437361dd14151e3aa0590c7d1da05141cf4 (patch)
tree2199989e3772031e5c45f7f046f5126b99ace86f
parent5e745567031e87ee0854dca8d10065449af27d9c (diff)
downloadpleroma-57568437361dd14151e3aa0590c7d1da05141cf4.tar.gz
Fully delete users with status :approval_pending
-rw-r--r--lib/pleroma/user.ex13
-rw-r--r--test/user_test.exs11
2 files changed, 18 insertions, 6 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 8e2c9fbe2..23288d434 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1525,12 +1525,13 @@ defmodule Pleroma.User do
defp delete_or_deactivate(%User{local: true} = user) do
status = account_status(user)
- if status == :confirmation_pending do
- delete_and_invalidate_cache(user)
- else
- user
- |> change(%{deactivated: true, email: nil})
- |> update_and_set_cache()
+ case status do
+ :confirmation_pending -> delete_and_invalidate_cache(user)
+ :approval_pending -> delete_and_invalidate_cache(user)
+ _ ->
+ user
+ |> change(%{deactivated: true, email: nil})
+ |> update_and_set_cache()
end
end
diff --git a/test/user_test.exs b/test/user_test.exs
index cd39e1623..57cc054af 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -1314,6 +1314,17 @@ defmodule Pleroma.UserTest do
end
end
+ test "delete/1 when approval is pending deletes the user" do
+ user = insert(:user, approval_pending: true)
+ {:ok, user: user}
+
+ {:ok, job} = User.delete(user)
+ {:ok, _} = ObanHelpers.perform(job)
+
+ refute User.get_cached_by_id(user.id)
+ refute User.get_by_id(user.id)
+ end
+
test "get_public_key_for_ap_id fetches a user that's not in the db" do
assert {:ok, _key} = User.get_public_key_for_ap_id("http://mastodon.example.org/users/admin")
end