2017-01-18 5 views
1

Я ищу способ в Wagtail 1.8, чтобы дать определенные права на редактирование и просмотр прав пользователя на определенной странице после его создания, поэтому я могу создать первую версию документа для их, а затем они могут добавлять контент, настраивать и просматривать, пока они не будут довольны этим. Одним из способов сделать это было бы присвоение им права владения страницей, но это поле доступно только для чтения. Ошибканазначить разрешение на редактирование определенной страницы конкретному пользователю

django.core.exceptions.FieldError: 'owner' cannot be specified 
    for ArticlePage model form as it is a non-editable field 

Я могу дать редактирования и просмотра прав доступа пользователей для всех документов путем присвоения им соответствующей группы (например, предопределенный Editor роль) с нужными разрешениями, но я предпочел бы избежать этого, если я Можно.

ответ

1

Это может быть достигнуто с помощью разрешений акции трясогузка (http://docs.wagtail.io/en/v1.8/topics/permissions.html):

Просто назначить пользователю группу самостоятельно (так что вам нужно, чтобы создать новую группу), а затем дать разрешение изменять эту группу для страницу, которую вы упоминаете. Разрешения будут распространяться по дереву, но поскольку на этой странице нет детей, это не имеет значения. Или вы можете явно не разрешать редактирование страницы, чтобы иметь детей, установив subpage_types = [] на свою страницу.

+0

Но это не кажется очень сухим. Например, при использовании модели пользователя профиля (каждый пользователь wagtail имеет отношение «один к одному» (через «OneToOneField») с выделенным «профилем», и каждый пользователь должен иметь возможность редактировать его/ProfilePage'', мне пришлось бы создать выделенную группу для всех пользователей. Это кажется доступным только для ограниченного числа пользователей ... Но я не знаю другого решения. – tombreit