diff --git a/bookwyrm/templates/user_admin/user_moderation_actions.html b/bookwyrm/templates/user_admin/user_moderation_actions.html index 043ef3863..311cbb4b5 100644 --- a/bookwyrm/templates/user_admin/user_moderation_actions.html +++ b/bookwyrm/templates/user_admin/user_moderation_actions.html @@ -5,12 +5,12 @@

{% trans "Send direct message" %}

-
+ {% csrf_token %} {% if user.is_active %} - + {% else %} - + {% endif %}
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 5768ee019..8c5266a6e 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -63,7 +63,7 @@ urlpatterns = [ re_path( r"^settings/users/(?P\d+)/?$", views.UserAdmin.as_view(), - name="settings-user" + name="settings-user", ), re_path( r"^settings/federation/?$", @@ -120,9 +120,9 @@ urlpatterns = [ name="settings-report", ), re_path( - r"^settings/reports/(?P\d+)/deactivate/?$", - views.deactivate_user, - name="settings-report-deactivate", + r"^settings/reports/(?P\d+)/suspend/?$", + views.suspend_user, + name="settings-report-suspend", ), re_path( r"^settings/reports/(?P\d+)/resolve/?$", diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 7714bbda1..c0f35ba81 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -25,7 +25,7 @@ from .notifications import Notifications from .outbox import Outbox from .reading import edit_readthrough, create_readthrough, delete_readthrough from .reading import start_reading, finish_reading, delete_progressupdate -from .reports import Report, Reports, make_report, resolve_report, deactivate_user +from .reports import Report, Reports, make_report, resolve_report, suspend_user from .rss_feed import RssFeed from .password import PasswordResetRequest, PasswordReset, ChangePassword from .search import Search diff --git a/bookwyrm/views/reports.py b/bookwyrm/views/reports.py index 3dd53cb96..07eb9b975 100644 --- a/bookwyrm/views/reports.py +++ b/bookwyrm/views/reports.py @@ -74,12 +74,13 @@ class Report(View): @login_required @permission_required("bookwyrm_moderate_user") -def deactivate_user(_, report_id): +def suspend_user(_, user_id): """ mark an account as inactive """ - report = get_object_or_404(models.Report, id=report_id) - report.user.is_active = not report.user.is_active - report.user.save() - return redirect("settings-report", report.id) + user = get_object_or_404(models.User, id=user_id) + user.is_active = not user.is_active + # this isn't a full deletion, so we don't want to tell the world + user.save(broadcast=False) + return redirect("settings-user", user.id) @login_required diff --git a/bookwyrm/views/user_admin.py b/bookwyrm/views/user_admin.py index 895c14641..0aea74ede 100644 --- a/bookwyrm/views/user_admin.py +++ b/bookwyrm/views/user_admin.py @@ -57,6 +57,7 @@ class UserAdminList(View): } return TemplateResponse(request, "user_admin/user_admin.html", data) + @method_decorator(login_required, name="dispatch") @method_decorator( permission_required("bookwyrm.moderate_users", raise_exception=True),