Wagtail CMS имеет систему разрешений, основанную на системе Django. Однако настройка его для пользователей, которые не являются администраторами и не используют готовые группы Модератор или Редактор, неясна. В настоящее время у меня есть:
- Пользовательский класс StudentUser
- Страницы, расположенные в приведенной ниже иерархии. :
Код: Выделить всё
Program
|
Course
/ | \
Report Labs Events
Проблема
Wagtail предоставляет только один программный код пример, который предназначен для добавления настраиваемого разрешения здесь, в их документации:
Код: Выделить всё
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from wagtail.admin.models import Admin
content_type = ContentType.objects.get_for_model(Admin)
permission = Permission.objects.create(
content_type=content_type,
codename="can_do_something",
name="Can do something",
)
Код: Выделить всё
from django.contrib.auth.models import Permission, Group
from example.website.models import StudentUser
group, created = Group.objects.get_or_create(name="Student")
add_report = Permission.objects.get(codename="add_reportpage")
change_report = Permission.objects.get(codename="change_reportpage")
group.permissions.add(add_report, change_report)
user = StudentUser.objects.get(email="john.doe@abc.com")
user.groups.add(group)
Если я попытаюсь скопировать точный URL-адрес отчета, используемый при входе администратора, это не позволит доступ при входе в StudentUser, несмотря на добавленные разрешения.
Дальнейшая отладка
Чтобы разобраться Если мне не хватает каких-то других типов разрешений, я перечислил разрешения для всех групп. Затем я скопировал их для своей новой группы. Ниже вы можете увидеть список разрешений, который я скопировал из встроенной группы «Модераторы»:
Код: Выделить всё
Moderators
,
,
,
,
,
,
,
,
Student
,
,
,
,
,
Какой шаг мне здесь не хватает, чтобы гарантировать, что пользовательские группы могут получить доступ к контенту? в интерфейсе администратора?
Подробнее здесь: https://stackoverflow.com/questions/791 ... thin-the-a