diff --git a/bookwyrm/templates/settings/users/user_moderation_actions.html b/bookwyrm/templates/settings/users/user_moderation_actions.html index 72202f379..5bd007e0d 100644 --- a/bookwyrm/templates/settings/users/user_moderation_actions.html +++ b/bookwyrm/templates/settings/users/user_moderation_actions.html @@ -15,6 +15,12 @@

{% endif %} + {% if not user.is_active and user.deactivation_reason == "pending" %} +
+ {% csrf_token %} + +
+ {% endif %} {% if user.is_active or user.deactivation_reason == "pending" %}
{% csrf_token %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 73bdd3755..cd07cbf00 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -145,6 +145,11 @@ urlpatterns = [ views.UserAdmin.as_view(), name="settings-user", ), + re_path( + r"^settings/users/(?P\d+)/activate/?$", + views.ActivateUserAdmin.as_view(), + name="settings-activate-user", + ), re_path( r"^settings/federation/(?P(federated|blocked))?/?$", views.Federation.as_view(), diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 353275c46..cb4d79abd 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -31,7 +31,7 @@ from .admin.reports import ( ) from .admin.site import Site, Registration, RegistrationLimited from .admin.themes import Themes, delete_theme -from .admin.user_admin import UserAdmin, UserAdminList +from .admin.user_admin import UserAdmin, UserAdminList, ActivateUserAdmin # user preferences from .preferences.change_password import ChangePassword diff --git a/bookwyrm/views/admin/user_admin.py b/bookwyrm/views/admin/user_admin.py index 4611a388c..c793d3bff 100644 --- a/bookwyrm/views/admin/user_admin.py +++ b/bookwyrm/views/admin/user_admin.py @@ -1,7 +1,7 @@ """ manage user """ from django.contrib.auth.decorators import login_required, permission_required from django.core.paginator import Paginator -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, redirect from django.template.response import TemplateResponse from django.utils.decorators import method_decorator from django.views import View @@ -95,3 +95,19 @@ class UserAdmin(View): form.save(request) data = {"user": user, "group_form": form} return TemplateResponse(request, "settings/users/user.html", data) + + +@method_decorator(login_required, name="dispatch") +@method_decorator( + permission_required("bookwyrm.moderate_user", raise_exception=True), + name="dispatch", +) +class ActivateUserAdmin(View): + """activate a user manually""" + + # pylint: disable=unused-argument + def post(self, request, user): + """activate user""" + user = get_object_or_404(models.User, id=user) + user.reactivate() + return redirect("settings-user", user.id) diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 9ba4bfe40..5f3c62895 100644 --- a/locale/en_US/LC_MESSAGES/django.po +++ b/locale/en_US/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-26 16:43+0000\n" +"POT-Creation-Date: 2023-01-30 08:21+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -851,7 +851,7 @@ msgstr "" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:69 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -5448,7 +5448,7 @@ msgid "Remove theme" msgstr "" #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 msgid "Permanently delete user" msgstr "" @@ -5570,14 +5570,18 @@ msgid "User Actions" msgstr "" #: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +msgid "Activate user" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 msgid "Suspend user" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:26 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 msgid "Un-suspend user" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:48 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 msgid "Access level:" msgstr ""