Plone Permissions

Я создаю сайт 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, потому что эти изменения не отражаются на моем сайте, поэтому я не могу понять концепцию. Я хочу создать разные меню в соответствии с ролью пользователя.

3 ответа

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

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

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

Третий аргумент 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)

Другие вопросы по тегам