MODX. Настройка политики доступов в MODX Revolution

В MODX Revolution очень гибкая настройка прав доступов, а потому и не сильно понятная для новичков.

Настройка доступов может состоять из:

  • настройки групп пользователей;
  • настройки политики доступа;
  • настройки шаблона политики доступа;
  • ролей;
  • настройки групп страниц;
  • настройки пользователей;
  • настройки доступа к источнику файлов.

Но это совершенно не означает что для того чтобы дать пользователю конкретные права, вам поребуются все эти элементы. Рассмотрим поподробнее каждый из них.

Группа пользователей (user groups)

Группа пользовательей — это список пользователей обладающих схожими правами. Пользователь может состоять в нескольких группах одновременно. Права в MODX назначаются именно группе, но не конкретному пользователю.

Для создания группы пользователей надо заполнить обязательные поля:

  • Имя (name) — название группы
  • Контексты — контексты сайта, доступные для группы (обычно web и mgr)
  • Политика панели управления — политика доступа для группы

Остальные поля заполняются по необходимости.

Политики доступа (access policy)

Политики доступа — это группы разрешенных привилегий, которые можно назначить той или иной группе пользователей. Каждая привилегия применима к определённому виду объектов. Например, привилегия на просмотр страниц не может быть использована для предоставления доступа на просмотр контекста, для этого есть отдельная привилегия.

Предустановленные политики доступа:

  • Administrator — полный доступ к администрированию контекста.
  • Content Editor — ограниченный доступ к администрированию контекста, без права публикации.
  • Context — стандартная контекстная политика, которую можно применять при создании доступа для чтения / записи, и просмотра неопублекованного в контектсе. 
  • Element — любые действия с элементами (объектами категории элементы). 
  • Hidden Namespace —  не будет отображать пространство имен в списках.
  • Load Only — минимальная политика с разрешением на загрузку объекта.
  • Load, List and View — предоставляет только загрузку, список и просмотр.
  • Media Source Admin — администрирование источников файлов.
  • Media Source User — использование источников файлов, с базовым просмотром и использованием, но без редактирования 
  • Object — политика полного доступа к объектам.
  • Resource — политика полного доступа к ресурсам.

При создании политики доступа в MODX можно указать шаблон политики доступа, тогда при редактировании политики доступа будет доступен ограниченный набор привилегий.

Шаблоны политик доступа (policy templates)

Шаблон политик доступа — группирует привилегии, чтобы с ними было удобно работать в панели администрирования.

В MODX есть множество различных привилегий, некоторые из них логически связаны, например:

  • создание страницы
  • редактирование страницы
  • сохранение страницы

Для того, чтобы ориентироваться в привилегиях было проще, не перебирая список из 100+ привилегий, а используя для этого более короткий список, в MODX существуют шаблоны политик доступа. Шаблон состоит из набора привилегий, с которыми часто приходится работать вместе, к примеру, если нужно дать доступ на просмотр страницы, велика вероятность, что понадобятся и привилегии на редактирование и создание.

Шаблон не даёт никаких привилегий, он лишь ограничивает количество привилегий, которые можно назначить политике. При этом он объединяет привилегии относящиеся к одному типу объектов и, как следствие, определяет, к каким объектам будет применима политика доступа.

Роли (roles)

Роли позволяют ограничивать привилегии пользователя внутри группы. Каждая роль имеет ранг: чем меньше числовое значение ранга, тем больше доверия соответствует этой роли. Когда пользователь добавляется в группу, ему назначается определённая роль. Если ранг роли равен нулю (Super User), пользователю оказывается максимально возможное для этой группы доверие, он получает доступ ко всем привилегиям группы. 

По умолчанию созданы 2 роли:

  • Member — 9999.
  • Super User — 0.

Для простейшего использования механизма роли можно всем участникам группы назначать роль Super User.

Более сложный механизм использования ролей становиться необходим если определенным участникам группы надо немного более расширить функционал. Например, если есть политика доступа «Контент-менеджер», в которой участники делятся на контент-менеджеров, и главных редакторов. Оба типа участников должны обладать способностью создания и редактирования ресурсов, но главному редактору можно предоставить право удалять ресурсы. Это можно сделать путем создания новой группы пользователей с дополнительной ролью, но данный ход потребует дублирования действий. Ту же самую задачу можно решить дав контент-менеджерам роль Member, а главным редакторам роль Super User, и для роли Super User предоставить дополнительную привилегию.

Группы страниц (resource groups)

Для ограничения постраничного доступа, страницы должны принадлежать определенным группам. Как и в случае с пользователями, права настраиваются для групп, но не для определенной страницы.

Управлять доступом можно на уровне следующих объектов:

  • контексты,
  • группы страниц,
  • категории элементов,
  • медиа источники (media source).

Пользователи (users)

Список существующих пользователей можно найти в меню Управление (Manage) основного меню. Каждый элемент содержит соответствующий набор полей, и привязан к своим ролям и политикам доступа. При использовании пользователем нескольких групп, даются максимальные права от каждой группы.

Источники файлов (media source)

Источники файлов — это каталоги в файловой системе. Их можно настраивать для использования в том или ином компоненте, ими же можно регулировать доступ определенных груп пользователей к файловой системе.

Создать новый источник можно в меню Медиа (Media) → Источники файлов (Media Sources).

Общая схема

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

  1. выделить объекты, доступ к которым необходимо предоставить;
  2. если доступом к данным объектам нельзя управлять напрямую (например, это страница или чанк), создать группу страниц или категорию элементов и добавить туда интересующий объект;
  3. создать пользователя;
  4. создать группу, которая будет носителем прав доступа к интересующим объектам, и добавить пользователя в эту группу;
  5. создать политику доступа с набором привилегий, которые необходимо предоставить;
  6. присвоить политику доступа группе пользователей.

Примеры

Настройка доступа для аккаунта модератора сайта:

  1. В системных настройках выбираем «Контроль доступа» (Access Control List).
  2. На вкладке «политики доступа» (access policy) создаем новую политику с именем Moderator, при необходимости выбираем для нее шаблон.
  3. Устанавливаем необходимые привилегии.
  4. Возвращаемся на вкладку Группы пользователей, пользователи и создаем новую группу, с именем Moderator.
  5. В появившемся окне создания группы устанавливаем контексты web, mgr, и политику доступа Moderator. Сохраняем.
  6. Кликаем по созданной группе правой кнопкой мыши, жмем редактировать, перепроверяем что все установлено верно.
  7. В меню «Управление» (Manage) создаем нового пользователя. Указываем имя, email, и при желании устанавливаем пароль сами.
  8. На вкладке «Права доступа» устанавливаем группу в которой будет числиться пользователь. Даем ему роль Super User.
  9. Устанавливаем чекбокс «Активный» и сохраняем.
  10. В меню «Управление» (Manage) перезагружаем права доступа.

Ограничение на просмотр файловой системы:

  1. Добавляем новый либо копируем старый источник файлов в меню Медиа (Media) → Источники файлов (Media Sources);
  2. Указываем название: "Upload"; basePath, baseUrl: "assets/upload/";
  3. Переходим в системных настройках идем в «Контроль доступа» (Access Control List);
  4. Правой кнопкой мыши жмем на группу пользователей и выбираем отредактировать;
  5. На вкладке «права доступа» жмем на «доступ к источнику файлов»;
  6. Выбираем созданный источник файлов. Указываем минимальную роль, например: Member - 9999 и политику доступа, например: Media Source Admin. Сохраняем;
  7. Далее в меню «Управление» (Manage) выбираем «очистить кеш», затем «Перезагрузить права доступа»

Ограничиваем доступ к источнику файлов «Filesystem» для всех кроме администраторов:

  1. Идем в меню Медиа (Media) → Источники файлов (Media Sources);
  2. Правым кликом мыши выбираем «редактировать источник»;
  3. На вкладке: «Права доступа», нажимаем «Добавить группу пользователей».
  4. Выбираем группу «Administrator», ставим минимальную роль: "Super User — 0", Политику: «Media Source Admin». Сохраняем.
  5. Если в системе присутствуют другие источники файлов, им придется отдельно, тем же путем, проставить права доступа для каждой группы.

Управление группами ресурсов:

  1. Переходим в меню: «Содержимое» (Content) → «Группы ресурсов» (Resource Groups);
  2. Создаем группу ресурсов, называем «Administrator», указываем контексты web,mgr, ставим галку «Автоматически дать доступ группе Administrator»;
  3. Добавляем элементы которые должны быть скрыты от менеджера в новую группу «Администратор», сохраняем;
  4. В меню «Управление» (Manage) выбираем «очистить кеш», затем «Перезагрузить права доступа».
tnx

За понятное обьяснение Илье Уткину

Порталу webdesign-master за схемы.