From ff9f4d5bc1eeedcdcbc7da121b01985d8c722ed6 Mon Sep 17 00:00:00 2001 From: Sage Abdullah Date: Mon, 13 May 2024 10:58:01 +0100 Subject: [PATCH] Register Users and Groups menu items from the viewset --- wagtail/users/views/groups.py | 4 ++++ wagtail/users/views/users.py | 15 +++++++++++++ wagtail/users/wagtail_hooks.py | 41 ---------------------------------- 3 files changed, 19 insertions(+), 41 deletions(-) diff --git a/wagtail/users/views/groups.py b/wagtail/users/views/groups.py index 6a7cf12372..b421aa5305 100644 --- a/wagtail/users/views/groups.py +++ b/wagtail/users/views/groups.py @@ -149,6 +149,10 @@ class GroupViewSet(ModelViewSet): model = Group ordering = ["name"] add_to_reference_index = False + menu_name = "groups" + menu_label = _("Groups") + menu_order = 601 + add_to_settings_menu = True index_view_class = IndexView add_view_class = CreateView diff --git a/wagtail/users/views/users.py b/wagtail/users/views/users.py index fef206f0ee..45a105823a 100644 --- a/wagtail/users/views/users.py +++ b/wagtail/users/views/users.py @@ -17,6 +17,7 @@ from django.utils.translation import gettext_lazy from wagtail import hooks from wagtail.admin.filters import DateRangePickerWidget, WagtailFilterSet +from wagtail.admin.menu import MenuItem from wagtail.admin.ui.tables import ( BulkActionsCheckboxColumn, Column, @@ -370,12 +371,26 @@ class HistoryView(generic.HistoryView): return get_user_display_name(self.object) +class UsersMenuItem(MenuItem): + def is_shown(self, request): + return ( + request.user.has_perm(add_user_perm) + or request.user.has_perm(change_user_perm) + or request.user.has_perm(delete_user_perm) + ) + + class UserViewSet(ModelViewSet): icon = "user" model = User ordering = "name" add_to_reference_index = False filterset_class = UserFilterSet + menu_name = "users" + menu_label = gettext_lazy("Users") + menu_order = 600 + menu_item_class = UsersMenuItem + add_to_settings_menu = True index_view_class = IndexView add_view_class = CreateView diff --git a/wagtail/users/wagtail_hooks.py b/wagtail/users/wagtail_hooks.py index 5584cca817..ce96cd6266 100644 --- a/wagtail/users/wagtail_hooks.py +++ b/wagtail/users/wagtail_hooks.py @@ -10,7 +10,6 @@ from wagtail.admin.admin_url_finder import ( ModelAdminURLFinder, register_admin_url_finder, ) -from wagtail.admin.menu import MenuItem from wagtail.admin.search import SearchArea from wagtail.compat import AUTH_USER_APP_LABEL, AUTH_USER_MODEL_NAME from wagtail.permission_policies import ModelPermissionPolicy @@ -54,46 +53,6 @@ delete_user_perm = "{}.delete_{}".format( ) -class UsersMenuItem(MenuItem): - def is_shown(self, request): - return ( - request.user.has_perm(add_user_perm) - or request.user.has_perm(change_user_perm) - or request.user.has_perm(delete_user_perm) - ) - - -@hooks.register("register_settings_menu_item") -def register_users_menu_item(): - return UsersMenuItem( - _("Users"), - reverse("wagtailusers_users:index"), - name="users", - icon_name="user", - order=600, - ) - - -class GroupsMenuItem(MenuItem): - def is_shown(self, request): - return ( - request.user.has_perm("auth.add_group") - or request.user.has_perm("auth.change_group") - or request.user.has_perm("auth.delete_group") - ) - - -@hooks.register("register_settings_menu_item") -def register_groups_menu_item(): - return GroupsMenuItem( - _("Groups"), - reverse("wagtailusers_groups:index"), - name="groups", - icon_name="group", - order=601, - ) - - class UsersSearchArea(SearchArea): def is_shown(self, request): return (