Разрешения Plone

Я создаю сайт Plone с помощью этой книги, используя 4.3.x.

Профессиональный Plone для разработки

так что у меня теперь 4 члена:

  1. Управляющий делами
  2. Клиент
  3. Сборщик билетов
  4. Штат сотрудников

так что я настроил некоторые разрешения в соответствии с ролью, но я исправлен в определенный момент и не могу понять, как установить соответствующие разрешения, потому что, когда я изменил свои разрешения, они не отражаются на моем сайте, есть два варианта, как вы можете видеть в следующий код:

mp = portal.tickets.manage_permission

mp(CancelAndReinstate, ['Manager', 'Staff'], 0)

mp('Access contents information', ['Manager','staff'], 0)

mp(permissions.ListFolderContents, ['Manager',], 1)

mp(permissions.View, ['Manager','Customer' ], 1)

portal.tickets.reindexObject()

Вот что делают 0 и 1, потому что эти изменения не отражаются на моем сайте, поэтому я не могу понять концепцию. Я хочу создать разные меню в соответствии с ролью пользователя.


person snipersnack    schedule 07.03.2016    source источник
comment
Я также сталкиваюсь с такой проблемой в plone.   -  person Bharti Rawat    schedule 07.03.2016
comment
Что вы подразумеваете под отражением моего сайта?   -  person SteveM    schedule 07.03.2016
comment
отразить означает, что изменения не отображаются в прямом эфире @SteveM   -  person snipersnack    schedule 08.03.2016


Ответы (3)


Понятия не имею, что такое "portal.tickets" для вас, но это похоже на контент сайта. Если да: вы делаете это неправильно. Вам не следует никогда вручную обновлять конфигурацию безопасности объекта где-либо, кроме корня сайта Plone.

Что вам, вероятно, нужно, так это собственный рабочий процесс для вашей папки «tickets» и содержимого этой папки.

person keul    schedule 08.03.2016

Третий аргумент manage_permission сообщает нам, наследуется ли это разрешение также от родительской папки:

def manage_permission(permission_to_manage, roles=[], acquire=0):
    """Change the settings for the given permission.

    If optional arg acquire is true, then the roles for the permission
    are acquired, in addition to the ones specified, otherwise the
    permissions are restricted to only the designated roles.
    """

(AccessControl/interfaces.py)

person Ulrich Schwarz    schedule 08.03.2016

Самый распространенный и простой способ установить разрешения в Plone — это использовать Generic Setup и добавить rolemap.xml в ваш стандартный (или обновленный) профиль. Очень хорошую и понятную документацию по этому вопросу можно найти по адресу: http://docs.plone.org/develop/plone/security/custom_permissions.html

person montypie    schedule 06.12.2016