Jump to main content Jump to doc navigation

Что такое ACL (список контроля доступа)?

ACL, или список контроля доступа (Access Control List), это набор Разрешений, прикреплённых к объекту. Подробнее об ACL можно прочитать в Википедии.

Использование

В MODX ACL можно применить к любому modAccessibleObject. В первую очередь MODX Revolution 2.0 позволяет использовать ACL для ресурсов и контекстов.

ACL контекста

ACL контекста состоит из 4 частей:

Это означает, что вы можете назначить ACL для контекста, который будет применяться к:

  • Всем пользователям в группе пользователей
  • ... с минимальной указанной ролью
  • ... и даст пользователям все разрешения в назначенной политике доступа.

ACL ресурса

ACL для ресурсов работают немного иначе и в основном позволяют ограничить доступ к ресурсам (документы, веб-ссылки и т. д.) через группы ресурсов. Они состоят из 5 частей:

Это означает, что ACL, применённый к группе ресурсов:

  • Затронет всех пользователей в указанной группе пользователей
  • ... с минимальной указанной ролью
  • ... даст разрешения на ресурсы (save, load, delete и т. д.) из указанной политики
  • ... для всех ресурсов в группе ресурсов

Публикация в менеджере и несколько групп

Публикация в менеджере (чекбокс Published, даты publish/unpublish, пункты Publish/Unpublish в дереве, процессоры publish/unpublish) смотрит на контекстное разрешение publish_document (и unpublish_document) через modX::hasPermission(). В менеджере текущий контекст это mgr.

Следствия:

  1. Политика с publish_document только на фронтовом контексте (web или другом) не включает кнопки публикации в менеджере. Нужен Context Access ACL на mgr.
  2. Разрешения Resource ACL publish / unpublish (ресурсная политика) это другой слой. Текущий UI публикации в менеджере их не использует.
  3. Несколько групп на mgr объединяются через OR: достаточно, чтобы одна подходящая ACL на mgr дала publish_document. Это не пересечение всех групп.
  4. Типичная ловушка: одна группа даёт на mgr политику Content Editor (без публикации), а вторая кладёт политику с публикацией только на другой контекст. Пользователь в обеих группах всё равно без publish в менеджере, пока publish_document не появится на mgr.

Что сделать: добавьте Context Access на mgr хотя бы для одной группы пользователя с политикой, где есть publish_document (и при необходимости unpublish_document). Content Editor на другой группе можно оставить. Сбросьте сессии/права и проверьте снова.

Подробнее: Политика администратора (publish_document), доступ менеджера. Фон треда: modxcms/revolution#14925.

Смотрите также

  1. Пользователи
  2. Группы пользователей
  3. Группы ресурсов
  4. Роли
  5. Политики
    1. Разрешения
      1. Разрешения - Политика администратора
      2. Разрешения - Ресурсная политика
    2. ACL
    3. Шаблоны политик
  6. Уроки по безопасности
    1. Предоставление доступа менеджеру пользователей
    2. Создание страниц только для участников
    3. Создание второго суперадминистратора
    4. Ограничение доступа пользователей к элементу
    5. Подробнее о группе анонимных пользователей
  7. Защита MODX Revolution
  8. Устранение проблем с безопасностью
    1. Ручной сброс пароля пользователя

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • JT Skaggs
  • deJaya
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$194 per month—let's make that $500!

Learn more