Modx revo настройка источника файлов

Обновлено: 04.07.2024

Добро! Опять я филоню и вот уже больше месяца Вы не видите от меня ни одного поста. Исправляюсь. Данный пост будет интересен разработчикам на системе Modx Revolution. В этом уроке я расскажу как облегчить редактирование сайта обычному менеджеру, который ни капельки не разбирается в сайтах.

Для начала напомню Вам как настроить админку Modx Revo — об этом я писал в этом посте. У меня есть некоторые изменения, а точнее упрощение этой самой админки. Дело в том, что в той политике доступа (для тех кто не понял — читайте внимательнее пост по ссылке) указаны вкладки, которые никак не понадобятся обычному менеджеру, а наоборот, могут ввести его в ступор (скажем такие вкладки в меню, как «настройка системы» или «источник файлов»). Предлагаю новую политику доступа. Все пункты, которые описаны в той статье смело выполняйте, но на 6-ом пункте оставьте галочки только на этих параметрах:

  • change_password (Пользователь может менять свой пароль)
  • change_profile (Пользователь может редактировать свой профиль)
  • class_map (Видеть список классов в карте классов)
  • countries (Смотреть список стран)
  • delete_document (Удалять и перемещать ресурсы)
  • directory_create (Создавать каталоги в файловой системе)
  • directory_list (Получать список подкаталогов для каталога в файловой системе)
  • directory_remove (Удалять каталоги в файловой системе)
  • directory_update (Переименовывать каталоги в файловой системе)
  • edit_document (Редактировать ресурсы)
  • file_create (Создавать файлы)
  • file_list (Смотреть список файлов в определенном каталоге)
  • file_manager (Использовать диспетчер файлов)
  • file_remove (Удалять файлы)
  • file_tree (Видеть дерево файлов в левой навигационной панели)
  • file_update (Изменять файлы)
  • file_upload (Загружать файлы в папку)
  • file_view (Просматривать содержимое файла)
  • frames (Использовать бэкэнд MODX)
  • help (Смотреть страницу «Помощь»)
  • home (Смотреть страницу приветствия)
  • list (Возможность «list» любого объекта) «List» означает получить колекцию объектов)
  • load (Возможность «загружать» объекты, или быть в состоянии вернуть их как экземпляр объекта вообще)
  • logout (Возможность выходить как пользователь)
  • menu_site (Показывать в верхнем меню пункт «Сайт»)
  • menu_tools (Показывать в верхнем меню пункт «Инструменты»)
  • menu_user (Показывать в верхнем меню пункт «Пользователь»)
  • new_document (Создавать ресурсы)
  • publish_document (Публиковать или отменять публикацию ресурсов)
  • purge_deleted (Очищать корзину)
  • resource_duplicate (Создавать копию ресурса)
  • resource_quick_create (Использовать «Быстро создать ресурс» в контекстном меню)
  • resource_quick_update (Использовать «Быстро обновить ресурс» в контекстном меню)
  • resource_tree (Смотреть дерево ресурсов в левой навигационной панели)
  • save_document (Сохранять ресурсы)
  • sources (Управлять источниками файлов и типами источников файлов)
  • source_delete (Удалять источник файлов)
  • source_edit (Редактировать источник файлов)
  • source_save (Создавать и сохранять источник файлов)
  • source_view (Видеть источник файлов)
  • tree_show_resource_ids (Показывать идентификатор в дереве ресурсов)
  • view (Возможность «просмотра» объектов)
  • view_document (Просматривать ресурсы)

При таких настройках в админке будет только все необходимое обычному менеджеру.

Удаление ненужных tv-параметров и плейсхолдеров из админки

Зачастую для достаточно простых сайтов (каких как раз-таки большинство) не нужна куча непонятных плейсхолдеров типа «Псевдоним», «Аннотация (введение)» или все «Настройки» с кучей, ненужных простому обывателю, непонятных параметров. А нужен всего лишь «Заголовок» и «Содержимое ресурсов». Сейчас я покажу, на примере одного из своих сайтов, как настроить для менеджера упрощенную админку.

MODX Revolution - Настройка прав доступа

MODX Revolution не позволяет напрямую назначать права пользователю. В этой системе данное действие осуществляется через группы пользователей.

Другими словами, для того чтобы пользователю предоставить некоторые права, необходимо:

  • создать группу и назначить ей нужные привилегии;
  • поместить одного или нескольких пользователей в эту группу.

Но нахождения пользователя в группе не означает то, что он получит все её привилегии. Права, которые получит пользователь, будут определяться с помощью отведённой ему в этой группе роли. Роль (ранг) пользователя в группе определяется с помощью числа от 0 до 9999. Это значение определяет, какие пользователь получит привилегии группы, а какие нет.

Другими словами роль – это некий механизм, который позволяет в пределах одной группы разным пользователям назначить разные права.

Разберём небольшой пример.

MODX Revolution – Как узнать какие привилегии имеет пользователь

  • Пользователь User1 принадлежит к группе Group1. Он имеет те привилегии группы, роль которых больше 2000.
  • Пользователь User2 состоит в 2 группах. Он имеет привилегии 2 групп. От первой группы (Group1) он имеет те привилегии, роль которых больше или равно 1000. А от второй (Group2) - те привилегии, роль которых больше или равно 9999.
  • Пользователь User3 находится в группе Group2. Эта группа даёт ему те права, роль которых больше или равно 5000.

Политика доступа в MODX

Установление привилегий группе в MODX Revolution осуществляется с помощью политики доступа. Она (политика доступа) назначаются группе применительно к определённым сущностям MODX, а именно к контексту, группе ресурсов, категории элементов, источнику файлов и пространству имён. Кроме этого указывается ещё минимальная роль, которая нужна пользователю этой группы, чтобы иметь эти привилегии.

MODX Revolution – Привилегии, которые получают пользователи группы, в зависимости от того, какую роль каждый из них играет в ней

  • Пользователь User1 (роль в группе Group1 - 2000) имеет все привилегии группы Group1, роль которых больше или равно 2000. Т.е. это К1, К2 и Г2.
  • Пользователь User2 имеет самую высокую роль в группе (0) и, следовательно, все её привилегии (К1, К2, Г1 и Г2).
  • Пользователь User3 имеет в группе Group1 самую низкую роль (9999). В соответствии с ней он может совершать действия в системе, определённые в К2 и Г2.

Политика доступа – это набор прав, предоставляемый пользователю для совершения действий на сайте, работающем под управлением CMS MODX Revolution.

Почему это реализовано именно так? Это связано с тем, что прав в MODX очень много и их более удобно назначать группами (другими словами с помощью политики доступа), а не по одному.

Например, политика доступа Load, List and View имеет следующий набор разрешений:

  • load (загружать объекты);
  • list (получать коллекцию объектов);
  • view (просмотр объектов).

Как создать свою политику доступа

При установке разрешений группе пользователей вы не ограничены только существующими (предустановленными) в системе MODX политиками. При необходимости вы можете создать новые. Создание политики в MODX осуществляется на основании шаблона политики доступа. Шаблон политики доступа – это сущность MODX Revolution, которая определяет максимальный список разрешений, доступный при создании политики доступа.

Таким образом, для того чтобы создать политику доступа с нужными разрешениями необходимо:

  1. Найти подходящий шаблон политики доступа (при необходимости отредактировать существующий или создать новый).
  2. Создать политику доступа, выбрав подходящий шаблон.
  3. Включить из всего списка разрешений, предлагаемый шаблоном, только те, которые вы хотите предоставить пользователям (если они будут иметь эту политику).

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

Анонимный пользователь

В MODX Revolution любой не авторизированный посетитель сайта является анонимным и принадлежит к группе (аноним). В этом легко убедится, если создать следующий сниппет, поместить его вызов в шаблон ресурса, а затем открыть страницу.

Php код сниппета GetUser:

Вызов сниппета на странице:

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

Типовые инструкции по настройке разрешений

В этом разделе рассмотрим инструкции, которые можно использовать, когда вам необходимо:

  • ограничить доступ к определённым ресурсам для анонимных пользователей;
  • создать контент менеджера, которому необходимо дать доступ для работы с ресурсами в админке, а также возможность загружать картинки.

Ограничение доступа к определённым ресурсам

Чтобы это осуществить необходимо:

  1. Создать группу ресурсов Users (Содержимое -> Группы ресурсов -> кнопка «Создать группу ресурсов»). В появившейся форме ввести в поле «Имя» - Users и нажать на кнопку «Сохранить». Поместить в неё нужные ресурсы (доступ, к которым необходимо ограничить для анонимных посетителей).
  2. Создать группу пользователей Users (Иконка «Шестерёнка» -> Контроль доступа -> кнопка «Новая группа пользователей»). В открывшемся диалоговом окне ввести в поле «Имя» - Users, «Контексты» - web, «Политики бэкэнда» - (нет политики).
  3. Перейти в режим редактирования группы (в контекстном меню Users выбрать пункт «Редактировать группу пользователей»).
  4. Открыть вкладку «Права доступа», а в ней «Доступ к группам ресурсам». Нажать на кнопку «Добавить группу ресурсов» и заполнить открывшуюся форму («Группа ресурсов» - Group, «Контекст» - (web), Минимальная роль – Member (9999), «Политика доступа» – Load, List and View).

После этого, любой анонимный или другой пользователь (у которого нет прав) получит 404 ресурс (т.к. у него нет даже права load), если он попытается открыть какую-ту страницу из этой группы.

Если же вы хотите анонимных пользователей, при открытии защищённых страниц, пересылать на какую-то другую (например, авторизации), то необходимо выполнить дополнительно ещё следующее (а именно дать право load для этой группы ресурсов):

Настройка прав для контент менеджера

В этом примере создадим группу «Managers», пользователи которой смогут в админке загружать изображения в директорию и работать с определёнными ресурсами.

Чтобы это осуществить можно, например, воспользоваться следующей инструкцией:

1. Создать новую политику доступа Manager с необходимыми правами:

  • Открыть страницу «Контроль доступа» (иконка «Шестерёнка» -> Контроль доступа) и перейти на вкладку «Политика доступа».
  • Сделать копию политики «Content Editor».
  • Отредактировать созданную копию, а именно изменить поле имя на Manager и установить галочки напротив прав directory_list, file_list, file_manager, file_remove, file_tree, file_upload. В итоге политика доступа Manager будет иметь 30 разрешений. Это необходимо сделать для того, чтобы пользователю предоставить права для работы с файлами.
  • Нажать на кнопку «Сохранить».

2. Скрыть ресурсы, к которым менеджеры не должны иметь доступ в админке:

  • Открыть страницу «Группы ресурсов» и нажать на кнопку «Создать группу ресурсов».
  • В открывшейся форме ввести в «Имя» - ClosedForManagers, «Контексты» - mgr и отметить опцию «Автоматически дать доступ группе Administrator».
  • Кликнуть на кнопку «Сохранить».
  • Перетащить в созданную группу ресурсы, которые необходимо скрыть для менеджеров в админке.

3. Предоставить доступ к директории, в которую пользователь будет загружать картинки.

  • Открыть страницу «Источники файлов», кликнуть по кнопке «Создать новый источник файлов».
  • В открывшейся форме ввести в поле «Имя» текст Images, в «Описание» - Изображения, в «Тип источника файлов» - Файловая система.
  • Нажать на кнопку «Сохранить».
  • Отредактировать только что созданный источник файлов (правая кнопка мыши -> действие «Редактировать»).
  • Изменить значение параметров: basePath – assets/images/, baseUrl – assets/images/, allowedFileTypes - jpg, jpeg, png, gif.
  • Кликнуть по кнопке «Сохранить».

Источник файлов, не имеющий связанной с ним группы пользователей, будет доступен всем пользователем бэкэнда. Поэтому чтобы для пользователей группы Managers не показывались другие источники файлов, которые не связаны не с одной группы, их, например, можно назначить группе пользователей Administrator.

MODX Revolution – Связывание источника файлов Filesystem с группой Administrator

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

4. Создать новую группу пользователей и назначить ей необходимые права.

  • Открыть страницу «Контроль доступа», перейти на вкладку «Группы пользователей & Пользователи», нажать на кнопку «Новая группа пользователей».
  • В открывшемся диалоговом окне заполнить следующие поля: «Имя» - Managers; «Описание» - Менеджеры; «Контексты» - web, mgr; «Политика бэкэнда» - Manager.
  • Нажать на кнопку «Сохранить».
  • Перейти в режим редактирования только что созданной группы пользователей «Managers» (нажать правой кнопкой мыши на группе -> пункт в контекстном меню «Редактировать»).
  • Перейти на вкладку «Права доступа».
  • Открыть раздел «Доступ к контекстам». Доступ контексту web: «Минимальная роль» - Member (9999); Политика доступа – Load, List and View. Доступ к контексту mgr: «Минимальная роль» - Member (9999), Политика доступа – Manager.
  • В разделе «Доступ к источнику файлов» добавим новую запись, имеющую следующие значения: «Источник» - Images; «Минимальная роль» - Member (9999), «Политика доступа» – Media Source Admin.
  • Нажать на кнопку «Сохранить»

5. Создать пользователя и добавить его в группу «Manager». В качестве значения роли установить ему число 9999 (Member). Данной роли ему будет достаточно, чтобы получить все разрешения данной группы. Это связано с тем, что для этой группы мы не назначали политики доступа для которых потребовалось бы роль больше чем 9999.

Уроки MODX. Настройка Revolution

Планируете ли вы создавать крупный информационный портал, сайт-организации, простейшую интернет-визитку, вам по окончании процесса установки MODX в любом случае потребуется произвести базовую настройку системы.

Настроек в этой системе управления огромное количество, меньше, чем звезд на небе, но достаточно, чтобы изначально несколько растеряться. Не будем бросаться в крайности. Рассмотрим только основные системные настройки, без упоминания которых теряется весь смысл самообучения…

Сделать это можно либо через FTP-клиент, либо через файловый менеджер панели управления хостинга, либо с помощью файл-менеджера административной части MODX (вкладка «Файлы» в левой части окна).

Если вы переместили папку core за корневую директорию, установив MODX при помощи расширенного пакета, третий способ вам не поможет.

Дальнейшие настройки производятся в окне «Системные настройки и события». Чтобы открыть окно настроек, следует подвести курсор мыши к значку шестеренки в правом верхнем углу админ-панели и выбрать первый же пункт «Системные настройки».

Системные настройки MODX

Системных настроек в Revo огромное количество

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

Фильтр по разделам в Модэкс рево

Значок «+» в левой части названия настройки откроет подсказку о том, для чего данный пункт предназначен. А в поле «Значение» меняются сами параметры каждой настройки. Их, в зависимости от типа настройки, вводят или вручную, или выбирают из списка.

Базовая настройка MODX Revo

Основные параметры системы, которые обычно редактируются непосредственно после установки MODX

Раздел «Сайт»

Раздел «Система и сервер»

Раздел «Панель управления»

  • Показывать текст подсказки рядом с полем: описание пунктов меню, полезно только при знакомстве с системой, в дальнейшем можно отключать, варианты Да/Нет
  • Формат даты в панели управления: можно сменить на наш, родной, d-m-Y
  • Первый день недели: ставим 1, мы же не Стругацкие

Раздел «Дружественные URL» – режим ЧПУ

  • Транслитерация псевдонимов: russian (для включения транслитерации дополнительно требуется установить дополнение translit)
  • Суффикс контейнера: Очищаем
  • Использовать дружественные URL: Да
  • Строгий режим дружественных URL: Да
  • Проверять на дублирование URI во всех контекстах: Да

Включив на сайте ЧПУ (режим дружественныу URL), переименуйте дополнительно ht.access в корне сайта в .htaccess, иначе при попытке перехода на страницы, отличные от главной, получите ошибку 404.

Подтверждение изменений или сохранение параметров не требуется, все происходит автоматически.

На этом первоначальную настройку можно считать завершенной. Далее идет установка из репозиториев самых необходимых для плодотворной и удобной разработки дополнений MODX Revo.

В MODX Revolution очень гибкая настройка прав доступов, а потому и не сильно понятная для новичков.

Настройка доступов может состоять из:

  • настройки групп пользователей;
  • настройки политики доступа;
  • настройки шаблона политики доступа;
  • ролей;
  • настройки групп страниц;
  • настройки пользователей;
  • настройки доступа к источнику файлов.

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

Группа пользователей (user groups)

Группа пользовательей — это список пользователей обладающих схожими правами. Пользователь может состоять в нескольких группах одновременно. Права в MODX назначаются именно группе, но не конкретному пользователю.

Для создания группы пользователей надо заполнить обязательные поля:

  • Имя (name) — название группы
  • Контексты — контексты сайта, доступные для группы (обычно web и mgr)
  • Политика панели управления — политика доступа для группы

Остальные поля заполняются по необходимости.

Политики доступа (access policy)

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

Предустановленные политики доступа:

  • Administrator — полный доступ к администрированию контекста.
  • Content Editor — ограниченный доступ к администрированию контекста, без права публикации.
  • Context — стандартная контекстная политика, которую можно применять при создании доступа для чтения / записи, и просмотра неопублекованного в контектсе.
  • Element — любые действия с элементами (объектами категории элементы).
  • Hidden Namespace — не будет отображать пространство имен в списках.
  • Load Only — минимальная политика с разрешением на загрузку объекта.
  • Load, List and View — предоставляет только загрузку, список и просмотр.
  • Media Source Admin — администрирование источников файлов.
  • Media Source User — использование источников файлов, с базовым просмотром и использованием, но без редактирования
  • Object — политика полного доступа к объектам.
  • Resource — политика полного доступа к ресурсам.

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

Шаблоны политик доступа (policy templates)

Шаблон политик доступа — группирует привилегии, чтобы с ними было удобно работать в панели администрирования.

В MODX есть множество различных привилегий, некоторые из них логически связаны, например:

  • создание страницы
  • редактирование страницы
  • сохранение страницы

Для того, чтобы ориентироваться в привилегиях было проще, не перебирая список из 100+ привилегий, а используя для этого более короткий список, в MODX существуют шаблоны политик доступа. Шаблон состоит из набора привилегий, с которыми часто приходится работать вместе, к примеру, если нужно дать доступ на просмотр страницы, велика вероятность, что понадобятся и привилегии на редактирование и создание.

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

Роли (roles)

Роли позволяют ограничивать привилегии пользователя внутри группы. Каждая роль имеет ранг: чем меньше числовое значение ранга, тем больше доверия соответствует этой роли. Когда пользователь добавляется в группу, ему назначается определённая роль. Если ранг роли равен нулю (Super User), пользователю оказывается максимально возможное для этой группы доверие, он получает доступ ко всем привилегиям группы.

По умолчанию созданы 2 роли:

Для простейшего использования механизма роли можно всем участникам группы назначать роль Super User.

Более сложный механизм использования ролей становиться необходим если определенным участникам группы надо немного более расширить функционал. Например, если есть политика доступа «Контент-менеджер», в которой участники делятся на контент-менеджеров, и главных редакторов. Оба типа участников должны обладать способностью создания и редактирования ресурсов, но главному редактору можно предоставить право удалять ресурсы. Это можно сделать путем создания новой группы пользователей с дополнительной ролью, но данный ход потребует дублирования действий. Ту же самую задачу можно решить дав контент-менеджерам роль Member, а главным редакторам роль Super User, и для роли Super User предоставить дополнительную привилегию.

Группы страниц (resource groups)

Для ограничения постраничного доступа, страницы должны принадлежать определенным группам. Как и в случае с пользователями, права настраиваются для групп, но не для определенной страницы.

Управлять доступом можно на уровне следующих объектов:

  • контексты,
  • группы страниц,
  • категории элементов,
  • медиа источники (media source).

Пользователи (users)

Список существующих пользователей можно найти в меню Управление (Manage) основного меню. Каждый элемент содержит соответствующий набор полей, и привязан к своим ролям и политикам доступа. При использовании пользователем нескольких групп, даются максимальные права от каждой группы.

Источники файлов (media source)

Источники файлов — это каталоги в файловой системе. Их можно настраивать для использования в том или ином компоненте, ими же можно регулировать доступ определенных груп пользователей к файловой системе.

Создать новый источник можно в меню Медиа (Media) → Источники файлов (Media Sources).

Общая схема

Учитывая информацию приведенную выше, алгоритм настройки доступа в MODX можно представить так:

  1. выделить объекты, доступ к которым необходимо предоставить;
  2. если доступом к данным объектам нельзя управлять напрямую (например, это страница или чанк), создать группу страниц или категорию элементов и добавить туда интересующий объект;
  3. создать пользователя;
  4. создать группу, которая будет носителем прав доступа к интересующим объектам, и добавить пользователя в эту группу;
  5. создать политику доступа с набором привилегий, которые необходимо предоставить;
  6. присвоить политику доступа группе пользователей.

Примеры

Настройка доступа для аккаунта модератора сайта:

  1. В системных настройках выбираем «Контроль доступа» (Access Control List).
  2. На вкладке «политики доступа» (access policy) создаем новую политику с именем Moderator, при необходимости выбираем для нее шаблон.
  3. Устанавливаем необходимые привилегии.
  4. Возвращаемся на вкладку Группы пользователей, пользователи и создаем новую группу, с именем Moderator.
  5. В появившемся окне создания группы устанавливаем контексты web, mgr, и политику доступа Moderator. Сохраняем.
  6. Кликаем по созданной группе правой кнопкой мыши, жмем редактировать, перепроверяем что все установлено верно.
  7. В меню «Управление» (Manage) создаем нового пользователя. Указываем имя, email, и при желании устанавливаем пароль сами.
  8. На вкладке «Права доступа» устанавливаем группу в которой будет числиться пользователь. Даем ему роль Super User.
  9. Устанавливаем чекбокс «Активный» и сохраняем.
  10. В меню «Управление» (Manage) перезагружаем права доступа.

Ограничение на просмотр файловой системы:

  1. Добавляем новый либо копируем старый источник файлов в меню Медиа (Media) → Источники файлов (Media Sources);
  2. Указываем название: "Upload"; basePath, baseUrl: "assets/upload/";
  3. Переходим в системных настройках идем в «Контроль доступа» (Access Control List);
  4. Правой кнопкой мыши жмем на группу пользователей и выбираем отредактировать;
  5. На вкладке «права доступа» жмем на «доступ к источнику файлов»;
  6. Выбираем созданный источник файлов. Указываем минимальную роль, например: Member - 9999 и политику доступа, например: Media Source Admin. Сохраняем;
  7. Далее в меню «Управление» (Manage) выбираем «очистить кеш», затем «Перезагрузить права доступа»

Ограничиваем доступ к источнику файлов «Filesystem» для всех кроме администраторов:

Читайте также: