目标: 在我的 Wagtail 网站中,我想拒绝所有普通用户(即不是超级用户,不是版主/编辑)访问“报告”管理菜单及其所有子菜单项,例如“锁定页面”、“工作流程”, ““网站历史”,“老化页面”等
我不想在“报告”管理菜单下创建任何自定义子菜单项,例如“具有未发布更改的页面”。
我知道如何对普通用户完全隐藏“报告”管理菜单。我的目标是拒绝许可,除了隐藏。
到目前为止我尝试了什么: 按照https://github.com/wagtail/wagtail/issues/6014我创建了这两个文件:
from wagtail.admin.auth import permission_denied from wagtail.admin.views.reports import ReportView class MyReport(ReportView): def dispatch(self, request, *args, **kwargs): if not self.request.user.is_superuser: return permission_denied(request) return super().dispatch(request, *args, **kwargs)
从 .views 导入 MyReport
期望的行为: 如果普通用户访问任何报告子菜单,例如http://127.0.0.1:8000/admin/reports/site-history/
,他们应该会收到“权限被拒绝”错误