Modx источник файлов по умолчанию. Настройка админ панели клиента Modx Revolution с настройкой прав доступа. После сохранения политики доступа "manager" мы видим, что она появилась у нас в списке политик доступа

Статья, в которой рассмотрим, как в MODX Revolution организована система прав доступа, а также некоторые типовые инструкции по настройки разрешений для пользователей.

Система прав доступа в MODX

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

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

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

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

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

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


В этом примере:

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

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

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

Рассмотрим изображение.

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

В этом примере:

  • Пользователь 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:

user->get("username");

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

[[!GetUser]]

Результат работы:

(anonymous)

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

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

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

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

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

Рассмотрим пример, в котором ограничим доступ анонимным пользователям к определённым ресурсам (например, к личному кабинету, к странице «Изменения пароля» и т.п.). Доступ к этим ресурсам предоставим только зарегистрированным пользователям.

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

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

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

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

  1. Открыть системные настройки (иконка «Шестерёнка» -> Системные настройки). Выбрать пространство имён «core», раздел «Сайт». Найти параметр unauthorized_page (Страница ошибки 403 «Доступ запрещен») и указать ему в качестве значение - id ресурса , содержащего форму «Авторизации».
  2. Перейти в режим редактирования группы (аноним) . В разделе «Доступ к группам ресурсам» (вкладка «Права доступа») добавить группу ресурсов Users и выставить ей необходимые права (в данном случае «Контекст» - (web) , Минимальная роль – Member (9999) , «Политика доступа» – Load Only ).
Настройка доступа к группе ресурсов Users для анонимных пользователей

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

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

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

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

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

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

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

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

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

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

MODX - Связывание источника файлов 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.

Добавление пользователя в группу Manager (роль Member)

Добрый день, всем читателям блога WebHow! Наконец-то я нашла отличный плагин для подсветки кода в статьях, и теперь можно заняться серьезными делами. Итак, шутки в сторону, сегодня будет суровый пост для тех, кто мечтает организовать на своем MODx-сайте доску объявлений, каталог или любой другой сервис, где посетители будут сами размещать свой контент.

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

Я не программист, и когда мне впервые пришлось создать доску объявлений на MODx, все что я могла — поискать готовое решение. Различных вариантов сниппета, который бы позволил публиковать ресурс с фронтенда для MODx Revolution оказалось не мало.

Принцип у всех примерно один: при помощи FormIt создается страница с формой, в вызове которой прописывается имя сниппета. Для каждого типа объявлений создаются свои TV-поля, например, город, телефон, или поле для загрузки изображений. Когда пользователь отправляет форму, создается ресурс.

Однако, практически все сниппеты, которые мне удалось найти, были очень громоздкими: каждый TV-параметр нужно было прописывать в коде сниппета, а это меня не устраивало. Потому что для каждого вида объявлений я задумала как минимум 3 дополнительных поля, и все их прописывать в сниппет… нет, есть способ лучше и проще. Он был найден мною на англоязычной части официального форума MODx.com И если вы не очень хорошо говорите и читаете по английски или вам просто лень искать подходящий вариант из нескольких в теме, я расскажу как им пользоваться.

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

Код сниппета formit2resource

getObject("modResource",array("id"=>$hook->getValue("resource_id"))); if (empty($doc)){ $doc = $modx->newObject("modResource"); $doc->set("createdby", $modx->user->get("id")); } else{ $doc->set("editedby", $modx->user->get("id")); } $allFormFields = $hook->getValues(); foreach ($allFormFields as $field=>$value) { if ($field !== "spam" && $field !== "resource_id"){ $doc->set($field, $value); } } $alias = $doc->cleanAlias($fields["pagetitle"]); if($modx->getCount(modResource, array("alias"=>$alias))!= 0) { $count = 1; $newAlias = $alias; while($modx->getCount(modResource, array("alias"=>$newAlias))!= 0) { $newAlias = $alias; $newAlias .= "-" . $count; $count++; } $alias = $newAlias; } $doc->set("alias",$alias); $doc->set("template", $template); $doc->save(); foreach ($allFormFields as $field=>$value) { if (!empty($value) && $tv = $modx->getObject("modTemplateVar", array ("name"=>$field))) { /* handles checkboxes & multiple selects elements */ if (is_array($value)) { $featureInsert = array(); while (list($featureValue, $featureItem) = each($value)) { $featureInsert = $featureItem; } $value = implode("||",$featureInsert); } $tv->setValue($doc->get("id"), $value); $tv->save(); } } $modx->cacheManager->refresh(); return true;

Код сниппета formit2file

user->get("id"); // Path from root that user specifies // create unique path for this form submission $uploadpath = "assets/uploads/".$mydir."/"; // get full path to unique folder $target_path = $modx->config["base_path"] . $uploadpath; // get uploaded file names: $submittedfiles = array_keys($_FILES); // loop through files foreach ($submittedfiles as $sf) { // Get Filename and make sure its good. $filename = basename($_FILES[$sf]["name"]); // Get file"s extension $ext = pathinfo($filename, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // case insensitive // is the file name empty (no file uploaded) if($filename != "") { // is this the right type of file? if(in_array($ext, $ext_array)) { // clean up file name and make unique $filename = $counter . "." . $ext; $filename = str_replace(" ", "_", $filename); // spaces to underscores $filename = date("Y-m-d_G-i-s_") . $filename; // add date & time // full path to new file $myTarget = $target_path . $filename; // create directory to move file into if it doesn"t exist mkdir($target_path, 0755, true); // is the file moved to the proper folder successfully? if(move_uploaded_file($_FILES[$sf]["tmp_name"], $myTarget)) { // set a new placeholder with the new full path (if you need it in subsequent hooks) $myFile = $uploadpath . $filename; $hook->setValue($sf,$myFile); // set the permissions on the file if (!chmod($myTarget, 0644)) { /*some debug function*/ } } else { // File not uploaded $errorMsg = "There was a problem uploading the file."; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } } else { // File type not allowed $errorMsg = "Type of file not allowed."; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } // if no file, don"t error, but return blank } else { $hook->setValue($sf, ""); } $counter = $counter + 1; } return $output;

Друзья! Не забывайте подставлять в код формы ваши TV-поля и ID ваших ресурсов. Будьте внимательны, и у вас все получится.

Вызов FormIt

[[!FormIt? &hooks=`formit2file,formit2resource,redirect` &redirectTo=`ID страницы с сообщением` &template=`ID шаблона объявления` ]]

Условие для вызова чанка с формой

[[!+modx.user.id:is=`0`:then=`Для размещения объявления необходима авторизация [[!Loginza? &groups=`3` &profileFields=`username,email,fullname,photo`]]`:else=`[[$form_add]]`]]

Пример кода формы

[[+fi.error.error_message]]

Название
[[+fi.error.pagetitle]]
*
Город
[[+fi.error.city]]
*

Подробное описание

[[+fi.error.content]]

Прикрепить фотографии:

Вы можете разместить в каталоге до пяти фотографий. Допустимые форматы: .jpg, .png, .gif
Основное фото или логотип* [[+fi.error.img]]
Дополнительное фото (1) [[+fi.error.foto1]]
Дополнительное фото (2) [[+fi.error.foto2]]
Дополнительное фото (3) [[+fi.error.foto3]]
Дополнительное фото (4) [[+fi.error.foto4]]

Условие для вывода изображения

[[*img:notempty=``]]
Теперь пользователи вашего сайта могут не только размещать объявления, но и дополнять их фотографиями, как и на любой доске объявлений. Но что делать, если во время заполнения формы была допущена ошибка? Например, человек опечатался и указал неверный номер телефона, а может быть, просто захотел дополнить объявление или изменить цену на свой товар.

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

В Evolution все было достаточно просто: создаешь права пользователю и готово! А здесь нужно проделать достаточно много шагов, но сдругой стороны - в Modx Revolution с правами на документы и файлы можно делать все, что угодно (если конечно разбираться в этом). Ну что ж, начнем!

1. Переходим в "Безопасность" - "Контроль доступа" в верхнем меню админ-панели

2. Заходим во вкладку "Политика доступа"

3. Нажимаем на кнопку "Создать политику доступа"

У нас откроется окно с полями. В поле Имя пишем "manager", шаблон политики доступа - AdministratorTemplate. Жмем кнопку сохранить

4. После сохранения политики доступа "manager" мы видим, что она появилась у нас в списке политик доступа

5. Редактируем manager

6. Убираем галочки ненужных параметров

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

Убираем галочки со следующих параметров:

  • access_permissions Вывод страницы с настройками прав доступов пользователей
  • dashboards Просмотр и управление панелями
  • element_tree Возможность просмотра дерева элементов в левой навигационной панели
  • menu_reports Показывать в верхнем меню пункт «Отчёты»
  • menu_security Показывать в верхнем меню пункт «Безопасность»
  • menu_system Показывать в верхнем меню пункт «Система»
  • menu_tools Показывать в верхнем меню пункт «Инструменты»
  • new_static_resource Создавать новые статичные ресурсы.
  • remove_locks Удалять все блокировки на сайте

7. Переходим во вкладку "Безопасность" - "Контроль доступа" - "Роли"


8. Нажимаем кнопку "Создать новый", в поле Имя вбиваем Manager, Ранг - 9, нажимаем кнопку "Сохранить"


9. Сохраняем изменения и переходим в меню "Безопасность" - "Контроль доступа" - "Группы пользователей"


Правой кнопкой мыши жмем на "Administrator" и нажимаем "Создать группу пользователей"

10. Создаем новую группу: Имя - Manager, Политика бэкэнда - нет политики, жмем "Сохранить"

11. Находим ее в списке Групп пользователей и жмем "редактировать"

12. Заходим в меню "Доступ к контекстам" и нажимаем "Добавить контекст"

13. Контекст - mgr, Минимальная роль - Manager - 9, Политика доступа - Manager

14. Добавляем еще одни контекст

А точнее редактируем уже имеющийся web: Контекст - web, Минимальная роль - Manager - 9, Политика доступа - Administrator. Нажимаем кнопку "Сохранить"

15. Мы увидим такую картину! Сохраняем все во вкладке "Группа пользователя: Manager"

16. Далее: "Безопасность" - "Управление пользователями"

17. Создаем нового пользователя (это будет наш клиент) - нажимаем кнопку "Новый пользователь".

Имя вы ему можете задать какое угодно, я назову его - manager

18. Имя пользователя - manager, жмем галочку - Активный, вбиваем email

19. Указываем пароль

20. Перед тем как сохранить, зайдите во вкладку "Права доступа"

21. Жмем кнопку "Добавить пользователя в группу", Группа пользователя - "Manager", Роль - "Manager"

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

22. Переходим во вкладку "Инструменты" - "Источники файлов"

23. Откроется список всех источников файлов. По умолчанию создан одни единственный - Filesystem

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

24. Откроется такое окно. Жмем "Добавить группу пользователей"

25. Группы пользователей - Administrator, Минимальная роль - Super User - 0, Политика - Media Source Admin. Нажимаем "Сохранить"

26. Возвращаемся к Источникам файлов и создаем новый источник файлов

Назовем его "Manager", Тим источника файлов - Файловая система

27. Нажимаем правой кнопкой мыши на новый источник файлов "Manager" и выбираем "Редактировать"

28. Откроется такое окно! Нам нужно изменить первые 4 параметра

В basePath в поле значение мы вбиваем /manager/ , basePathRelative и baseUrlRelative оставляем как есть со значениями "Да", в поле baseUrl пишем manager/

29. Заходим в tv параметр

30. Нажимаем самую последнюю вкладку "Источники файлов"

и меняем источник файлов с "Filesystem" на "Manager". Сохраняем!

31. Добавляем группу пользователей в "Manager"

Теперь после всех проделанных шагов заходим в "Источник файлов" - "Manager" и добавляем группу пользователей в этот источник файлов

32. Группы пользователей - Manager, Минимальная роль - Manager - 9, Политика - Media Source Admin. Жмем "Сохранить"

Сразу после сохранения источник файлов "Manager" исчезнет для администратора. Для того чтобы можно было редактировать этот источник файлов, нужно зайти в меню "Безопасность - Контроль доступа". Открыть на редактирование группу менеджера: Manager и во вкладке "Источники файлов" найти и удалить источник Manager . Только тогда мы сможем вновь редактировать данный источник из под администратора.

33. На всякий случай очищаем кэш

и наш пользователь с ограниченными правами и доступами к файловой системе создан!

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

В Evolution все было достаточно просто: создаешь права пользователю и готово! А здесь нужно проделать достаточно много шагов, но сдругой стороны - в Modx Revolution с правами на документы и файлы можно делать все, что угодно (если конечно разбираться в этом). Ну что ж, начнем!

1. Переходим в "Безопасность" - "Контроль доступа" в верхнем меню админ-панели

2. Заходим во вкладку "Политика доступа"

3. Нажимаем на кнопку "Создать политику доступа"

У нас откроется окно с полями. В поле Имя пишем "manager", шаблон политики доступа - AdministratorTemplate. Жмем кнопку сохранить

4. После сохранения политики доступа "manager" мы видим, что она появилась у нас в списке политик доступа

5. Редактируем manager

6. Убираем галочки ненужных параметров

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

Убираем галочки со следующих параметров:

  • access_permissions Вывод страницы с настройками прав доступов пользователей
  • dashboards Просмотр и управление панелями
  • element_tree Возможность просмотра дерева элементов в левой навигационной панели
  • menu_reports Показывать в верхнем меню пункт «Отчёты»
  • menu_security Показывать в верхнем меню пункт «Безопасность»
  • menu_system Показывать в верхнем меню пункт «Система»
  • menu_tools Показывать в верхнем меню пункт «Инструменты»
  • new_static_resource Создавать новые статичные ресурсы.
  • remove_locks Удалять все блокировки на сайте

7. Переходим во вкладку "Безопасность" - "Контроль доступа" - "Роли"


8. Нажимаем кнопку "Создать новый", в поле Имя вбиваем Manager, Ранг - 9, нажимаем кнопку "Сохранить"


9. Сохраняем изменения и переходим в меню "Безопасность" - "Контроль доступа" - "Группы пользователей"


Правой кнопкой мыши жмем на "Administrator" и нажимаем "Создать группу пользователей"

10. Создаем новую группу: Имя - Manager, Политика бэкэнда - нет политики, жмем "Сохранить"

11. Находим ее в списке Групп пользователей и жмем "редактировать"

12. Заходим в меню "Доступ к контекстам" и нажимаем "Добавить контекст"

13. Контекст - mgr, Минимальная роль - Manager - 9, Политика доступа - Manager

14. Добавляем еще одни контекст

А точнее редактируем уже имеющийся web: Контекст - web, Минимальная роль - Manager - 9, Политика доступа - Administrator. Нажимаем кнопку "Сохранить"

15. Мы увидим такую картину! Сохраняем все во вкладке "Группа пользователя: Manager"

16. Далее: "Безопасность" - "Управление пользователями"

17. Создаем нового пользователя (это будет наш клиент) - нажимаем кнопку "Новый пользователь".

Имя вы ему можете задать какое угодно, я назову его - manager

18. Имя пользователя - manager, жмем галочку - Активный, вбиваем email

19. Указываем пароль

20. Перед тем как сохранить, зайдите во вкладку "Права доступа"

21. Жмем кнопку "Добавить пользователя в группу", Группа пользователя - "Manager", Роль - "Manager"

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

22. Переходим во вкладку "Инструменты" - "Источники файлов"

23. Откроется список всех источников файлов. По умолчанию создан одни единственный - Filesystem

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

24. Откроется такое окно. Жмем "Добавить группу пользователей"

25. Группы пользователей - Administrator, Минимальная роль - Super User - 0, Политика - Media Source Admin. Нажимаем "Сохранить"

26. Возвращаемся к Источникам файлов и создаем новый источник файлов

Назовем его "Manager", Тим источника файлов - Файловая система

27. Нажимаем правой кнопкой мыши на новый источник файлов "Manager" и выбираем "Редактировать"

28. Откроется такое окно! Нам нужно изменить первые 4 параметра

В basePath в поле значение мы вбиваем /manager/ , basePathRelative и baseUrlRelative оставляем как есть со значениями "Да", в поле baseUrl пишем manager/

29. Заходим в tv параметр

30. Нажимаем самую последнюю вкладку "Источники файлов"

и меняем источник файлов с "Filesystem" на "Manager". Сохраняем!

31. Добавляем группу пользователей в "Manager"

Теперь после всех проделанных шагов заходим в "Источник файлов" - "Manager" и добавляем группу пользователей в этот источник файлов

32. Группы пользователей - Manager, Минимальная роль - Manager - 9, Политика - Media Source Admin. Жмем "Сохранить"

Сразу после сохранения источник файлов "Manager" исчезнет для администратора. Для того чтобы можно было редактировать этот источник файлов, нужно зайти в меню "Безопасность - Контроль доступа". Открыть на редактирование группу менеджера: Manager и во вкладке "Источники файлов" найти и удалить источник Manager . Только тогда мы сможем вновь редактировать данный источник из под администратора.

33. На всякий случай очищаем кэш

и наш пользователь с ограниченными правами и доступами к файловой системе создан!

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