2017-01-06 3 views
0

"wagtail_hooks.py"には以下のコードがあります。 wagtail管理者として私はStudentModelAdminを見ることができますが、管理インターフェースへのアクセスが制限されているユーザーとしては私はできません。wagtail modeladmin PermissionHelperの例を探しています

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のいくつかの例を見つけようとしましたが、何も見つかりませんでした。

ご了承ください。

答えて

1

例として、Wagtailのソースのwagtail.contrib.modeladmin.helpers.PermissionHelperまたはwagtail.contrib.modeladmin.helpers.PagePermissionHelper許可ヘルパークラスを使用できます。 user_can_list,user_can_createなどのメソッドを参照してください。

...しかし、あなた自身の許可ヘルパークラスを定義する必要がありますか? Wagtailの管理者に新しい(または既存の編集)グループを作成して、Participantモデルにオブジェクト権限を与えることができます。

私のスクリーンショットProgrammeは、私がModelAdminを使用して管理しているモデルです。

enter image description here

+0

私はちょうどそれをやってしまいました。今のところは動作しますが、アプリがマルチサイト設定で実行されているため、より複雑な許可ルールが必要になります。 – jcuot

関連する問題