diff --git a/bookwyrm/templates/user_admin/user_moderation_actions.html b/bookwyrm/templates/user_admin/user_moderation_actions.html
index 816e787a2..e4460a687 100644
--- a/bookwyrm/templates/user_admin/user_moderation_actions.html
+++ b/bookwyrm/templates/user_admin/user_moderation_actions.html
@@ -1,6 +1,12 @@
{% load i18n %}
+ {% if not user.is_active and user.deactivation_reason == "self_deletion" %}
+
+ {% trans "Permanently deleted" %}
+
+ {% else %}
{% trans "Actions" %}
+
+
{% if user.local %}
{% endif %}
+
+ {% endif %}
diff --git a/bookwyrm/tests/views/test_edit_user.py b/bookwyrm/tests/views/test_edit_user.py
index 4796610f5..e3b9d4635 100644
--- a/bookwyrm/tests/views/test_edit_user.py
+++ b/bookwyrm/tests/views/test_edit_user.py
@@ -106,7 +106,7 @@ class EditUserViews(TestCase):
)
image = Image.open(image_file)
- result = views.user.crop_avatar(image)
+ result = views.edit_user.crop_avatar(image)
self.assertIsInstance(result, ContentFile)
image_result = Image.open(result)
self.assertEqual(image_result.size, (120, 120))
@@ -145,4 +145,6 @@ class EditUserViews(TestCase):
activity["cc"][0], "https://www.w3.org/ns/activitystreams#Public"
)
+ self.local_user.refresh_from_db()
self.assertFalse(self.local_user.is_active)
+ self.assertEqual(self.local_user.deactivation_reason, "self_deletion")
diff --git a/bookwyrm/views/edit_user.py b/bookwyrm/views/edit_user.py
index 3b255c686..c74b00c9d 100644
--- a/bookwyrm/views/edit_user.py
+++ b/bookwyrm/views/edit_user.py
@@ -59,7 +59,8 @@ class DeleteUser(View):
# idk why but I couldn't get check_password to work on request.user
user = models.User.objects.get(id=request.user.id)
if form.is_valid() and user.check_password(form.cleaned_data["password"]):
- request.user.delete()
+ user.deactivation_reason = "self_deletion"
+ user.delete()
logout(request)
return redirect("/")