MODX, как сделать красиво для администратора сайта. Часть 2
В первой части я рассказал, как вынести весь код в шаблоны и чанки, чтобы в контенте остался только текст. Настала пора настроить ACL (Access Control Lists или Контроль доступа).
В системном меню выбираем раздел Контроль доступа. Внутри выбираем раздел Политики доступа.
Есть два варианта: создать настройки с нуля используя шаблон Администратора или импортировать готовый шаблон. В моём шаблоне отключен раздел «Элементы» и другие не нужные редактору разделы и возможности. После импорта настоятельно рекомендую открыть новую политику и просмотреть все её пункты. Кроме понимания того, какие есть ограничения в данных настройках это поможет ознакомиться со всеми пунктами политики. В конце концов можно достаточно безопасно поиграться с настройками.
Конечно же, если у человека стоит задача обрушить сайт, то он найдёт способ обойти ограничения и испортит всё и вся. Поэтому не забываем про бэкапы. Для отключения ненужных для редактора источников файлов мы будем использовать эту политику.
После успешного импорта новых политик, там же переключаемся в раздел «Группы пользователей & Пользователи». Создаём новую группу. Обязательные поля:
После создания как обычно, жмём правую кнопку мыши над нашей новой группой и выбираем «Редактировать группу пользователей». Если при создании группы пользователей не добавили, то сейчас самое время. Дальше переключаемся в раздел «Права доступа» и выбираем таб «Доступ к источникам файлов». Жмём кнопку «Добавить источник файлов». В новом окне выбираем «Источник»: «Filesystem» и меняем «Политика доступа» на «None media». Сохраняем и повторяем операцию с другими источниками, которые редактор не должен видеть. Теперь надо ему дать доступ к файлам, источник которых мы создали в прошлой части:
Дальше открываем системные настройки и в поиске по ключу набираем «media». Теперь нам видно всё что относится к работе с файлами. Настройку «Источник файлов по умолчанию» (default_media_source) меняем на источник для нашего редактора. Теперь, если в HTML редакторе включена поддержка загрузки фотографий, то редактор будет сразу попадать в правильный источник файлов. А вот «Источник файлов для статических элементов по умолчанию» (static_elements_default_mediasource) лучше поставить на «Filesystem».
Если редактору нужен доступ к Lexicon (в моих настройках политики это уже отмечено), в системном меню выбираем пункт «Меню», дальше раскрываем «Меню пользователя» -> «Админ» и редактируем пункт «Управление словарями». Всё что нам нужно – сменить родителя, например, на «Управление».
Если же от редактора надо спрятать MIGX, то по такой же аналогии, как и со словарями, здесь же «Верхнее меню» -> «Пакеты» редактируем пункт MIGX и добавляем в «Привилегии» запись «packages». Этим мы даем право по созданию новых конфигураций MIGXа пользователю у которого есть доступ к пакетам. Можете подобрать другой вариант, который вам будет удобен.
На этом всё. Осталось написать руководство пользователя для редактора и можно сдавать проект.
Есть два варианта: создать настройки с нуля используя шаблон Администратора или импортировать готовый шаблон. В моём шаблоне отключен раздел «Элементы» и другие не нужные редактору разделы и возможности. После импорта настоятельно рекомендую открыть новую политику и просмотреть все её пункты. Кроме понимания того, какие есть ограничения в данных настройках это поможет ознакомиться со всеми пунктами политики. В конце концов можно достаточно безопасно поиграться с настройками.
Конечно же, если у человека стоит задача обрушить сайт, то он найдёт способ обойти ограничения и испортит всё и вся. Поэтому не забываем про бэкапы. Для отключения ненужных для редактора источников файлов мы будем использовать эту политику.
После успешного импорта новых политик, там же переключаемся в раздел «Группы пользователей & Пользователи». Создаём новую группу. Обязательные поля:
- «Имя»: какое вам будет удобно;
- «Контексты»: перечисляем все контексты (кроме manager), к которым у редактора будет доступ отличный от анонима, например, будет разрешение на просмотр неопубликованных ресурсов;
- «Политика системы управления»: выбираем созданную ранее политику для редактора;
После создания как обычно, жмём правую кнопку мыши над нашей новой группой и выбираем «Редактировать группу пользователей». Если при создании группы пользователей не добавили, то сейчас самое время. Дальше переключаемся в раздел «Права доступа» и выбираем таб «Доступ к источникам файлов». Жмём кнопку «Добавить источник файлов». В новом окне выбираем «Источник»: «Filesystem» и меняем «Политика доступа» на «None media». Сохраняем и повторяем операцию с другими источниками, которые редактор не должен видеть. Теперь надо ему дать доступ к файлам, источник которых мы создали в прошлой части:
- «Источник»: выбираем нужный источник;
- «Минимальная роль»: 9999;
- «Политика доступа»: «Media Source Admin».
Дальше открываем системные настройки и в поиске по ключу набираем «media». Теперь нам видно всё что относится к работе с файлами. Настройку «Источник файлов по умолчанию» (default_media_source) меняем на источник для нашего редактора. Теперь, если в HTML редакторе включена поддержка загрузки фотографий, то редактор будет сразу попадать в правильный источник файлов. А вот «Источник файлов для статических элементов по умолчанию» (static_elements_default_mediasource) лучше поставить на «Filesystem».
Если редактору нужен доступ к Lexicon (в моих настройках политики это уже отмечено), в системном меню выбираем пункт «Меню», дальше раскрываем «Меню пользователя» -> «Админ» и редактируем пункт «Управление словарями». Всё что нам нужно – сменить родителя, например, на «Управление».
Если же от редактора надо спрятать MIGX, то по такой же аналогии, как и со словарями, здесь же «Верхнее меню» -> «Пакеты» редактируем пункт MIGX и добавляем в «Привилегии» запись «packages». Этим мы даем право по созданию новых конфигураций MIGXа пользователю у которого есть доступ к пакетам. Можете подобрать другой вариант, который вам будет удобен.
На этом всё. Осталось написать руководство пользователя для редактора и можно сдавать проект.
Комментарии: 5
Что-то совсем тухло. Когда я перешел на MODx, первую свою статью я написал ровно про заготовку политик доступа. А потом обнаружил что в гугле и яндексе подобные статьи уже давно есть. Моя статья примерно равна вашей, только без правок источника файлов.
Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?», «а что такое роль?», «почему менеджер не может редактировать ресурс?» и т.д… На эти вопросы в вашей статье нет ответов.
С другой стороны, ваша статья кому-то наверняка поможет. А значит, силы потрачены скорее всего не зря. Просто в 2020 году такие статьи немного грустно читать. Дальше будут статьи «как создавать ресурсы в MODx»? :)
P.S.
Отдельно хочу дать небольшую рекомендацию. Тем кто действительно хочет разобраться в ACL, потестируйте каждую настройку и проверьте её функционал. Удивитесь не раз! :)
Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?», «а что такое роль?», «почему менеджер не может редактировать ресурс?» и т.д… На эти вопросы в вашей статье нет ответов.
С другой стороны, ваша статья кому-то наверняка поможет. А значит, силы потрачены скорее всего не зря. Просто в 2020 году такие статьи немного грустно читать. Дальше будут статьи «как создавать ресурсы в MODx»? :)
P.S.
Отдельно хочу дать небольшую рекомендацию. Тем кто действительно хочет разобраться в ACL, потестируйте каждую настройку и проверьте её функционал. Удивитесь не раз! :)
Вашу статью не видел. Но разница не только в источниках. Например, у вас допущена ошибка при создании группы. В списке контекстов «mgr» быть не должно, для него действуют другие правила. В тоже время я не додумался сделать комментарии к каждому пункту политики. Мне показалось, что описание пунктов политики в редакторе политики вполне достаточным.
> Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?»,
Да, мне стоит дописать про редактирование пунктов политики. Собственно сейчас этим и займусь.
> Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?»,
Да, мне стоит дописать про редактирование пунктов политики. Собственно сейчас этим и займусь.
Почему «mgr» в списке контекстов быть не должно? Давайте подробнее.
Я же написал, для него действуют другие правила. К контекстам указанным в списке будет получен уровень доступа «Контекст», а для mgr это не нужно. Как это отразиться на работе админки, я не вижу смысла испытывать. Ведь нет никакой гарантии, что в следующих версиях MODXа это не вылезет боком, после чего редакторы начнут в панике присылать письма, что всё пропало. Пример: изменения в версии 2.5.7
С таким подходом каждая настройка может вылезти боком. Уровень доступа «Контекст» тоже интересная штука, посмотрю что это и зачем это.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.