Главный принцип: права выдаются группе, а не пользователю
В MODX User может состоять в нескольких User Groups. Доступ формируется через Context Access, Resource Group Access, Element Category Access и Media Source Access.
Какой ACL использовать
| Задача | |
|---|---|
| анизм | |
| од в mgr и действия в Manager | Context Access |
| Доступ только к части страниц | Resource Group Access |
| Скрыть/разрешить Elements категории | Element Category Access |
| Ограничить папки файлов | Media Source Access |
Не изменяйте штатную policy напрямую
Для собственного набора прав безопаснее скопировать подходящую стандартную Access Policy и менять копию. Так обновление MODX не перезапишет ваши изменения.
Пример: редактор только для своего раздела
- создайте User Group «Редакторы раздела»;
- добавьте пользователю эту группу;
- дайте группе Context Access в
mgrс ограниченной policy; - создайте Resource Group и включите туда нужные ресурсы;
- назначьте Resource Group Access;
- при необходимости ограничьте Media Source;
- Flush Permissions и тест отдельным пользователем.
Проверить группы текущего пользователя через MODX API
<?php
$groups = $modx->user->getUserGroups();
$modx->log(modX::LOG_LEVEL_INFO, 'User groups: ' . print_r($groups, true));Как тестировать права
Никогда не проверяйте ограниченную роль своей Super Admin учётной записью. Используйте отдельного тестового пользователя, другой браузер/приватное окно, затем Flush Permissions. Проверяйте не только меню, но и прямые URL/processor actions.
Если пользователь видит страницу, но не может сохранить
Смотрите Network response и конкретное permission/processor. Это помогает отличить неверную Resource Group ACL от отсутствующего разрешения в Manager policy.