gpt4 book ai didi

Wagtail 按用户权限隐藏/显示菜单项

转载 作者:行者123 更新时间:2023-12-05 03:05:46 25 4
gpt4 key购买 nike

如何在 wagtail CMS 中隐藏-显示菜单:这是我在 blog/wagtail_hooks.py

中的 register_admin_menu_item Hook 代码
    from wagtail.core import hooks
from wagtail.admin.menu import MenuItem
@hooks.register('register_admin_menu_item')
def register_custom_admin_menu_item():
return MenuItem(_('Site Admin'), reverse('admin_menu'), classnames='icon icon-folder-inverse',
order=20000)

最佳答案

为了在菜单上施加访问权限,我们可以创建自定义 MenuItem 类并覆盖 is_shown 方法,如下所示:

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

现在使用这个 CustomAdminMenuItem 而不是像这样的 MenuItem:

    from wagtail.core import hooks
from wagtail.admin.menu import MenuItem
@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)

您也可以在 is_shown 中使用 has_perm 来实现自定义权限检查,例如:

    class CustomMenuItem(MenuItem):
def is_shown(self, request):
return (
request.user.has_perm('wagtailsearchpromotions.add_searchpromotion') or
request.user.has_perm('wagtailsearchpromotions.change_searchpromotion') or
request.user.has_perm('wagtailsearchpromotions.delete_searchpromotion')
)

有关更多详细信息,请访问源代码 here和文档 here .

关于Wagtail 按用户权限隐藏/显示菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434230/

25 4 0