Заготовка политик доступа для разных групп пользователей
Интро
Это моя первая заметка, посему просьба не ругать. По этой же причине не могу написать данную заметку в любой другой раздел. Если кто-то её перенесет, я буду не против. Данный step-by-step гайд больше подойдет либо совсем новичкам, либо тем кто хочет познакомиться с правами в MODX поближе.
Работаю с MODX не долго, около 2 месяцев. Уже на втором проекте у меня возникла задача жесткого разграничения прав, несколько иерархий контент-менеджеров, модераторов, авторов, администраторов и т.д. Все это меня заставило окунуться в омут настроек политик доступа для разных групп пользователей.
Политика доступа
Меньше слов — больше дела.
- Заходим в админку MODX
- Наводим на шестеренку в правом верхнем углу
- В выпадающем списке выбираем раздел «Контроль доступа»
- Выбираем вкладку «Политики доступа»
Далее шло утомительное включение и выключение нужных опций разрешений. Выжпрограммисты как известно люди ленивые. Я конечно не считаю себя программистом, но тоже ленивый, уже на следующем сайте я решил сварганить свой собственный XML файл с настройками. В итоге у меня сейчас есть 6 видов файлов, для 6-ти разных групп пользователей с абсолютно разными настройками. Они создаются путем импорта во вкладке «Политика доступа»
В несколько кликов мышкой я создаю полностью настроенные политики доступа для абсолютно разных групп. А если нужно где-то изменить ту или иную опцию, я это делаю прямо в XML файле перед импортом. Делюсь со всеми шаблоном политики доступа для контент-менеджеров:
gist.github.com/iWatchYouFromAfar/4a68691789b1db1f5d9f6d63c3d6ff85
После того как вы импортируете файл, у вас появится новая политика доступа — Content Managers.
Ну а далее просто необходимо её применить к группе пользователей:
- Открываем вкладку «Группа пользователей & пользователи»
- Создаем группу Content Managers
- После в этой же вкладке ПКМ на нашу новосозданную группу и редактировать
- Указываем у двух контекстов нашу политику доступа для контент-менеджеров
- Дальше создаем нового пользователя или уже существующего необходимо добавить в группу Content Managers.
- Перезагрузить права
- Очистить кеш
Но шаблон сделать да права выдать, это пол дела. В MODX есть 174 опции разрешений и все они не структурированы. Они отвечают за разные элементы и блоки админки, но находятся в одной куче. Плюс не все они интуитивно понятны и например у меня возникли некоторые вопросы по тем или иным опциям. Если не ошибаюсь, разобрался в 172 из них. Собственно в самом шаблоне по ссылке выше я в каждой опции указал много-много комментариев.
Траблы после сомнительных разработчиков
На одном из сайтов на MODX над которым я работал, предыдущий разработчик просто отключил шестеренку у всех пользователей, кроме Администратора по умолчанию. В итоге да, в админке выпадающего списка не видно, но если знать путь, можно перейти в любую настройку и пробовать там нагадить. По этой причине мой шаблон не просто убирает выпадашку, а запрещает контент-менеджеру вообще соваться в эти пункты. Доступ в итоге будет примерно такой:
------------Левый блок------------
Ресурсы
— Website контекст (+)
Элементы
— Шаблоны (-)
— Дополнительные поля (-)
— Чанки (-)
— Сниппеты (-)
— Плагины (-)
— Категории (-)
Файлы
------------Верхний блок------------
Содержимое
— Новый ресурс (+)
— Перейти на сайт (+)
— Импорт HTML (+)
— Импорт ресурсов (+)
— Группы ресурсов (-)
— Типы содержимого (-)
Медиа
— Источники файлов (-)
Приложение
— Установщик(-)
Управление
— Пользователи (-)
— Очистить кэш (+)
— Снять блокировки (-)
— Перезагрузить права доступа (-)
— Завершить все сеансы (-)
— Отчеты (+)
— Расписание сайта (+)
— Журнал системы управления (-)
— Журнал ошибок (-)
— Информация о системе (-)
------------Правый выпадающий блок------------
— Системные настройки (-)
— Настройка форм (-)
— Панели (-)
— Контексты (-)
— Меню (-)
— Контроль доступа (-)
— Наборы параметров (-)
— Управление словарями (-)
— Простанства имен (-)
Возвращаемся к опциям
174 опции и все в одной куче. Я например перфекционист, не в плане там цветов и прочих вещей, на которые как обычно обращают внимание. А именно в плане структуры и структуризации. Ну и как я сказал в самом начале, нужно не просто брать, но и что-то отдавать. На modx.docs есть раздел Система. Если пользователи и администраторы одобрят, я хотел бы навести порядок в этих 174 пунктах, добавив в доки раздел Разрешения / Permissions. В котором разделю опции разрешений MODX на 5 основных блоков:
- Системные разрешения
- Разрешения левого меню
- Разрешения верхнего меню
- Разрешения правого выпадающего списка
- Разрешения контента
Эндшпиль
- Есть дополнение modAccessManager, которое решает вопрос ограничение доступа, тот кто не захочет читать мою простыню, проще покупайте данный компонент и всех делов. Тут вопрос подхода, один купит готовое, второму будет интересно вникнуть в сам процесс разграничения прав.
- Мой гайд не решает вопрос настройки прав Групп ресурсов или источников файла. Цель моей простыни все таки не в этом.
Василию Наумкину за чудесный способ быстро и бесплатно разворачивать тестовые сайты на modhost!
Сергею Шлокову за подсказки в разборе опций create,view,remove,save. Хотя с этими опциями еще тоже не все до конца понятно.
Ивану Климчуку, за то что нашел время ответить на вопросы в телеграме, касательно некоторых опций.
Поблагодарить автора
Отправить деньги
Комментарии: 1
Паша, молодец!) Новичкам точно будет полезно!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.