MODX, как сделать красиво для администратора сайта. Часть 2

В первой части я рассказал, как вынести весь код в шаблоны и чанки, чтобы в контенте остался только текст. Настала пора настроить ACL (Access Control Lists или Контроль доступа).

В системном меню выбираем раздел Контроль доступа. Внутри выбираем раздел Политики доступа.

Есть два варианта: создать настройки с нуля используя шаблон Администратора или импортировать готовый шаблон. В моём шаблоне отключен раздел «Элементы» и другие не нужные редактору разделы и возможности. После импорта настоятельно рекомендую открыть новую политику и просмотреть все её пункты. Кроме понимания того, какие есть ограничения в данных настройках это поможет ознакомиться со всеми пунктами политики. В конце концов можно достаточно безопасно поиграться с настройками.

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



После успешного импорта новых политик, там же переключаемся в раздел «Группы пользователей & Пользователи». Создаём новую группу. Обязательные поля:

  • «Имя»: какое вам будет удобно;
  • «Контексты»: перечисляем все контексты (кроме manager), к которым у редактора будет доступ отличный от анонима, например, будет разрешение на просмотр неопубликованных ресурсов;
  • «Политика системы управления»: выбираем созданную ранее политику для редактора;


После создания как обычно, жмём правую кнопку мыши над нашей новой группой и выбираем «Редактировать группу пользователей». Если при создании группы пользователей не добавили, то сейчас самое время. Дальше переключаемся в раздел «Права доступа» и выбираем таб «Доступ к источникам файлов». Жмём кнопку «Добавить источник файлов». В новом окне выбираем «Источник»: «Filesystem» и меняем «Политика доступа» на «None media». Сохраняем и повторяем операцию с другими источниками, которые редактор не должен видеть. Теперь надо ему дать доступ к файлам, источник которых мы создали в прошлой части:

  • «Источник»: выбираем нужный источник;
  • «Минимальная роль»: 9999;
  • «Политика доступа»: «Media Source Admin».


Дальше открываем системные настройки и в поиске по ключу набираем «media». Теперь нам видно всё что относится к работе с файлами. Настройку «Источник файлов по умолчанию» (default_media_source) меняем на источник для нашего редактора. Теперь, если в HTML редакторе включена поддержка загрузки фотографий, то редактор будет сразу попадать в правильный источник файлов. А вот «Источник файлов для статических элементов по умолчанию» (static_elements_default_mediasource) лучше поставить на «Filesystem».

Если редактору нужен доступ к Lexicon (в моих настройках политики это уже отмечено), в системном меню выбираем пункт «Меню», дальше раскрываем «Меню пользователя» -> «Админ» и редактируем пункт «Управление словарями». Всё что нам нужно – сменить родителя, например, на «Управление».



Если же от редактора надо спрятать MIGX, то по такой же аналогии, как и со словарями, здесь же «Верхнее меню» -> «Пакеты» редактируем пункт MIGX и добавляем в «Привилегии» запись «packages». Этим мы даем право по созданию новых конфигураций MIGXа пользователю у которого есть доступ к пакетам. Можете подобрать другой вариант, который вам будет удобен.

На этом всё. Осталось написать руководство пользователя для редактора и можно сдавать проект.
Янис
21 октября 2019, 06:48
modx.pro
2
565
+5

Комментарии: 5

iWatchYouFromAfar
21 октября 2019, 08:31
+1
Что-то совсем тухло. Когда я перешел на MODx, первую свою статью я написал ровно про заготовку политик доступа. А потом обнаружил что в гугле и яндексе подобные статьи уже давно есть. Моя статья примерно равна вашей, только без правок источника файлов.

Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?», «а что такое роль?», «почему менеджер не может редактировать ресурс?» и т.д… На эти вопросы в вашей статье нет ответов.

С другой стороны, ваша статья кому-то наверняка поможет. А значит, силы потрачены скорее всего не зря. Просто в 2020 году такие статьи немного грустно читать. Дальше будут статьи «как создавать ресурсы в MODx»? :)

P.S.
Отдельно хочу дать небольшую рекомендацию. Тем кто действительно хочет разобраться в ACL, потестируйте каждую настройку и проверьте её функционал. Удивитесь не раз! :)
    Янис
    21 октября 2019, 10:07
    0
    Вашу статью не видел. Но разница не только в источниках. Например, у вас допущена ошибка при создании группы. В списке контекстов «mgr» быть не должно, для него действуют другие правила. В тоже время я не додумался сделать комментарии к каждому пункту политики. Мне показалось, что описание пунктов политики в редакторе политики вполне достаточным.

    > Все равно у новичков будут вопросы из разряда «а как дать такой-то доступ или как закрыть?»,
    Да, мне стоит дописать про редактирование пунктов политики. Собственно сейчас этим и займусь.
      iWatchYouFromAfar
      21 октября 2019, 10:27
      0
      Почему «mgr» в списке контекстов быть не должно? Давайте подробнее.
        Янис
        21 октября 2019, 10:34
        0
        Я же написал, для него действуют другие правила. К контекстам указанным в списке будет получен уровень доступа «Контекст», а для mgr это не нужно. Как это отразиться на работе админки, я не вижу смысла испытывать. Ведь нет никакой гарантии, что в следующих версиях MODXа это не вылезет боком, после чего редакторы начнут в панике присылать письма, что всё пропало. Пример: изменения в версии 2.5.7
          iWatchYouFromAfar
          21 октября 2019, 11:02
          0
          С таким подходом каждая настройка может вылезти боком. Уровень доступа «Контекст» тоже интересная штука, посмотрю что это и зачем это.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5