Wagtail CMS — программное обеспечение доступа пользователей к управлению страницами в панели администратора.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Wagtail CMS — программное обеспечение доступа пользователей к управлению страницами в панели администратора.

Сообщение Anonymous »

Контекст
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)
К сожалению, это не сработало. Когда я вхожу в серверную часть с пользователем типа StudentUser (учетная запись, которой я предоставил разрешение), в меню навигации нет ничего, кроме вкладки «Документы» (которая используется по умолчанию). Я нигде не вижу места для изменения отчета.
Если я попытаюсь скопировать точный URL-адрес отчета, используемый при входе администратора, это не позволит доступ при входе в StudentUser, несмотря на добавленные разрешения.

Дальнейшая отладка
Чтобы разобраться Если мне не хватает каких-то других типов разрешений, я перечислил разрешения для всех групп. Затем я скопировал их для своей новой группы. Ниже вы можете увидеть список разрешений, который я скопировал из встроенной группы «Модераторы»:

Код: Выделить всё

Moderators
,
,
,
,
,
,
,
,


Student
,
,
,
,
,

Как видите, похоже, что только доступ администратора является необходимым условием для просмотра контента в интерфейсе администратора. Несмотря на это, вход в систему под учетной записью Student по-прежнему не показывает никаких изменений в панели администратора Wagtail. И попытки получить доступ к любому отчету в интерфейсе администратора (как и вы в качестве администратора) продолжают получать код возврата с отказом в разрешении.
Какой шаг мне здесь не хватает, чтобы гарантировать, что пользовательские группы могут получить доступ к контенту? в интерфейсе администратора?

Подробнее здесь: https://stackoverflow.com/questions/791 ... thin-the-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»