【问题标题】:Looking for wagtail modeladmin PermissionHelper example寻找鹡鸰模型管理员 PermissionHelper 示例
【发布时间】:2017-05-20 16:49:45
【问题描述】:

在“wagtail_hooks.py”我有下面的代码。作为 wagtail 管理员,我可以看到 StudentModelAdmin,但作为对管理界面的访问受限的用户,我看不到。

我想允许具有 wagtail 管理员访问权限和以下特定权限的用户访问学生模型管理员。如何创建“CourseRegisterPermission”类?

from wagtail.contrib.modeladmin.options import (ModelAdmin, modeladmin_register)
from wagtail.wagtailcore import hooks
from .models import Participant

@hooks.register('register_permissions')
def view_course_registrations():
    return Permission.objects.filter(codename="view_course_registrations")


class CourseRegisterPermission(PermissionHelper):
    # how do I allow users with the permission to view course registrations 
    # to see the 'StudentModelAdmin" below?


class StudentModelAdmin(ModelAdmin):
    model = Participant
    menu_label = "Student Registrations"
    menu_icon = "group"
    search_fields = ('name', 'supervisor_name')
    list_display = ('name', 'email')
    list_filter = ('course',)
    permission_helper_class = CourseRegisterPermission

我试图找到一些 wagtail PermissionHelper 的示例,但没有找到。

任何提示将不胜感激!

【问题讨论】:

标签: django permissions wagtail modeladmin


【解决方案1】:

您可以使用 Wagtail 来源中的 wagtail.contrib.modeladmin.helpers.PermissionHelperwagtail.contrib.modeladmin.helpers.PagePermissionHelper 权限助手类作为示例。请参阅user_can_listuser_can_create 等方法。

但是...您确定需要定义自己的权限助手类吗?在我看来,您可以在 Wagtail 管理员中创建一个新的(或编辑现有的)组,并为您的 Participant 模型提供所需的对象权限

在我的屏幕截图中,Programme 是我使用 ModelAdmin 管理的模型。

【讨论】:

  • 我最终做到了。目前它可以工作,但考虑到应用程序在多站点设置中运行,我预计会有一些更复杂的权限规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 2019-03-13
  • 2021-05-16
相关资源
最近更新 更多