Ограничить пункты меню администратора разрешением пользователя django - PullRequest
0 голосов
/ 19 мая 2018

Я работаю над расширением трясогузки и использую следующий хук: python @hooks.register('register_settings_menu_item') def register_django_admin_menu_item(): return MenuItem(_('Site Admin'), '/django-admin', classnames='icon icon-wagtail-inverse', order=20000)

И я получаю ссылку на страницу администратора django, но я хочу ограничить этот элемент только для пользователя, которыйесть разрешение персонала.
enter image description here

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Попробуйте это:

    class CustomAdminMenuItem(MenuItem):
        def is_shown(self, request):
            return request.user.is_staff


    @hooks.register('register_admin_menu_item')
    def register_custom_admin_menu_item():
        return CustomAdminMenuItem(_('Site Admin'), reverse('admin_menu'), classnames='icon icon-folder-inverse', order=20000)
0 голосов
/ 20 мая 2018

Для этого есть декоратор:

from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required
@hooks.register('register_settings_menu_item')
def register_django_admin_menu_item():
    return MenuItem(_('Site Admin'), '/django-admin', classnames='icon icon-wagtail-inverse', order=20000)
...