Самый большой страх разработчика — сдать сайт клиенту, а через день услышать: «Я там что-то нажал, и всё пропало». Чтобы этого не случилось, мы настроим права доступа. Мы создадим роль «Редактор блога», который увидит только то, что ему положено.
- Задача
- Шаг 1. Создаем политику доступа (Policy)
- Что нужно ВКЛЮЧИТЬ (Галочки):
- Что нужно ОТКЛЮЧИТЬ (Убрать галочки):
- Шаг 2. Создаем Группу пользователей
- Шаг 3. Связываем группу и политику (магия ACL)
- Запись А (доступ к интерфейсу админки)
- Запись Б (доступ к веб-ресурсам)
- Шаг 4. Ограничиваем доступ к конкретным папкам (опционально)
- Шаг 5. Создаем пользователя
- Шаг 6. Проверка и медиа-источники
- Лайфхак: Как дать доступ к картинкам?
Задача
Нам нужно создать пользователя, который:
- Имеет доступ в админку.
- Может создавать, редактировать и удалять статьи (ресурсы).
- Может загружать картинки (через TV-поля), но не видит системные файлы.
- НЕ видит дерево элементов (чанки, шаблоны — чтобы не сломал верстку).
- НЕ имеет доступа к системным настройкам.
Шаг 1. Создаем политику доступа (Policy)

Политика — это список того, что можно делать (галочки «создать», «удалить», «сохранить»). Мы не будем создавать её с нуля, а скопируем готовую.
- Идем в «Человечек с замком» -> Контроль доступа.
- Вкладка Политики доступа.
- Находим стандартную политику Content Editor. Правой кнопкой мыши -> Копировать.

- Щелкаем по созданной политике правой кнопкой мыши и выбираем редактировать. Называем её:
Blog Manager Policyи сохраняем. - Далле нужно донастроить права (включить / отключить галки).
Что нужно ВКЛЮЧИТЬ (Галочки):
Чтобы менеджер мог писать статьи и, главное, загружать картинки в TV, проверьте наличие этих прав:
file_manager— разрешает использование файлового менеджера (без этого окно загрузки не откроется).file_list,file_upload,file_view— просмотр и загрузка файлов.directory_list— просмотр папок.source_view— просмотр медиа-источников (критично для картинок!).view_tv— видеть вкладку «Дополнительные поля» (TV). (Обратите внимание: праваsave_tvдавать НЕ НАДО, иначе менеджер сможет менять настройки самого поля, а не его значение).new_document,edit_document,save_document,publish_document— база для работы со статьями.
Что нужно ОТКЛЮЧИТЬ (Убрать галочки):
Скрываем все технические разделы, чтобы интерфейс был чистым и безопасным:
element_tree— скрывает вкладку «Элементы» (чанки, шаблоны, плагины).file_tree— скрывает вкладку «Файлы» в левом меню (файловый менеджер при этом будет работать в окнах выбора картинок).settings— скрывает системные настройки.access_permissions— запрещает управление правами доступа (чтобы не создал себе админа).menu_tools,menu_system,menu_support— скрываем лишние пункты верхнего меню.
Сохраняем политику.
Сохраняем.
Шаг 2. Создаем Группу пользователей
Права в MODX выдаются не конкретному человеку, а Группе.

- В том же разделе «Контроль доступа» переходим на вкладку Группы пользователей.
- Нажимаем «Создать группу пользователей».
- Название:
Content Managers. - В поле «Контексты» (справа) пока ничего не трогаем, сохраняем.
Шаг 3. Связываем группу и политику (магия ACL)
Теперь нам нужно сказать MODX: «Эта группа имеет вот эти права в админке».
- Нажмите правой кнопкой мыши на новую группу
Content Managers-> Редактировать.

- Перейдите на вкладку Права доступа -> Контексты.
- Нажмите «Добавить контекст».

Нам нужно добавить две записи:
Запись А (доступ к интерфейсу админки)
- Контекст:
mgr(manager) - Минимальная роль:
Member - 9999 - Политика доступа:
Blog Manager Policy(та, которую мы создали на шаге 1).
Запись Б (доступ к веб-ресурсам)
- Контекст:
web(или как называется ваш основной контекст) - Минимальная роль:
Member - 9999 - Политика доступа:
Load, List and View(стандартная политика, разрешающая видеть дерево ресурсов).
Сохраните группу.

Шаг 4. Ограничиваем доступ к конкретным папкам (опционально)
Если вы хотите, чтобы менеджер видел только папку «Блог», а не «Главная» или «Контакты»:
- Идем в Ресурсы -> Группы ресурсов.
- Создаем группу ресурсов
Blog Posts. - Перетаскиваем мышкой нужные папки (раздел Блог) в эту группу.
- Возвращаемся в редактирование Группы пользователей (
Content Managers). - Вкладка Доступ к группам ресурсов.
- Добавляем связь: Группа ресурсов
Blog Posts— ПолитикаResource— Контекстweb.
Важно: Чтобы это сработало на 100%, у админа (вас) должен быть доступ ко всем ресурсам, иначе скрытые ресурсы скроются и от вас. Но для простого блога часто достаточно шагов 1-3.
Шаг 5. Создаем пользователя
- Идем в Управление (человечек с замком) -> Пользователи

- На открывшейся странице жмем по кнопке «Создать«.

- Заполняем обязательные поля: Имя:
editor, E-mail, пароль (либо ставим сгенерировать), ставим галку активный и переходим во вкладку Права доступа.

- Нажимаем «Добавить группу» и выбираем
Content Managers. Роль оставляемMemberи Сохраняем.

Шаг 6. Проверка и медиа-источники
Откройте другой браузер (или режим Инкогнито) и войдите под новым пользователем.
Что вы увидите: дерево ресурсов. Возможность редактировать текст.
Что пропало: вкладки «Элементы» и «Файлы». Системные настройки.
Лайфхак: Как дать доступ к картинкам?
Мы отключили file_tree, поэтому менеджер не видит файлы. Но картинки в статьи вставлять надо! Для этого используются Медиа-источники (Media Sources).
- Идем (под админом) в Медиа -> Источники файлов.
- Создаем новый:
images(если вы не делали дз). - Указываем пути (basePath/baseUrl):
img/. - Во вкладке Права доступа жмем по кнопке Добавить группу пользователей. настройках идем на вкладку Доступ к источникам файлов.
- В сплывающем окне заполняем: Группа пользователей
Content Managers, Минимальная рольMember - 9999, ПолитикаMedia Source User(или Admin). 
А вот доступ к источнику Filesystem (корень сайта) — нужно закрыть. Идем в источник и задаем ему следующие права:

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














