Налаштування адмін панелі клієнта Modx Revolution з налаштуванням прав доступу. Налаштування адмін панелі клієнта Modx Revolution з налаштуванням прав доступу Далі: "Безпека" - "Управління користувачами"

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

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

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

Принцип у всіх приблизно один: за допомогою FormIt створюється сторінка з формою, у виклику якої прописується ім'я сниппета. Для кожного типу оголошень створюються свої TV-поля, наприклад, місто, телефон, або поле для завантаження зображень. Коли користувач відправляє форму, створюється ресурс.

Однак, практично всі сніппети, які мені вдалося знайти, були дуже громіздкими: кожен TV-параметр потрібно було прописувати в коді сниппета, а це мене не влаштовувало. Тому що для кожного виду оголошень я задумала як мінімум 3 додаткових поля, і все їх прописувати в сниппет ... немає, є спосіб краще і простіше. Він був знайдений мною на англомовній частині офіційного форуму MODx.com І якщо ви не дуже добре говорите і читаєте по англійськи або вам просто лінь шукати відповідний варіант з декількох в темі, я розповім як ним користуватися.

На цю тему я записала покрокову відео-інструкцію. Всі матеріали до неї ви знайдете трохи нижче програвача.

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

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

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

user-\u003e get ( "id"); // Path from root that user specifies // create unique path for this form submission $ uploadpath \u003d "assets / uploads /".$ mydir." / "; // get full path to unique folder $ target_path \u003d $ modx-\u003e config [ "base_path"]. $ Uploadpath; // get uploaded file names: $ submittedfiles \u003d array_keys ($ _ FILES); // loop through files foreach ($ submittedfiles as $ sf) (// Get Filename and make sure its good. $ Filename \u003d basename ($ _ FILES [$ sf] [ "name"]); // Get file "s extension $ ext \u003d pathinfo ($ filename, PATHINFO_EXTENSION); $ ext \u003d mb_strtolower ($ ext); // case insensitive // \u200b\u200bis the file name empty (no file uploaded) if ($ filename! \u003d "") (// is this the right type of file? if (in_array ($ ext, $ ext_array)) (// clean up file name and make unique $ filename \u003d $ counter. ".". $ ext; $ filename \u003d str_replace ( "", "_" , $ filename); // spaces to underscores $ filename \u003d date ( "Ym-d_G-i-s_"). $ filename; // add date & time // full path to new file $ myTarget \u003d $ 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 \u003d $ upload path. $ Filename; $ Hook-\u003e setValue ($ sf, $ myFile); // set the permissions on the file if (! Chmod ($ myTarget, 0644)) (/ * some debug function * /)) else (// File not uploaded $ errorMsg \u003d "There was a problem uploading the file."; $ hook-\u003e addError ($ sf, $ errorMsg); $ output \u003d false; // generate submission error)) else (// File type not allowed $ errorMsg \u003d "Type of file not allowed."; $ hook-\u003e addError ($ sf, $ errorMsg); $ output \u003d false; // generate submission error) // if no file, don "t error, but return blank) else ($ hook-\u003e setValue ($ sf," ");) $ counter \u003d $ counter + 1;) return $ output;

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

виклик FormIt

[[! FormIt? & Hooks \u003d `formit2file, formit2resource, redirect` & redirectTo \u003d` ID сторінки з сообщеніем` & template \u003d `ID шаблону об'явленія`]]

Умова для виклику чанка з формою

[[! + Modx.user.id: is \u003d `0`: then \u003d` Для розміщення оголошення необхідна авторизація [[! Loginza? & Groups \u003d `3` & profileFields \u003d` username, email, fullname, photo`]] `: else \u003d` [[$ 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 \u003d ``]]
Тепер користувачі вашого сайту можуть не тільки розміщувати оголошення, а й доповнювати їх фотографіями, як і на будь-який дошці оголошень. Але що робити, якщо під час заповнення форми була допущена помилка? Наприклад, людина опечатали і вказав невірний номер телефону, а може бути, просто захотів доповнити оголошення або змінити ціну на свій товар.

Наступного разу розповім,. А на сьогодні все, сподіваюся, ця стаття була вам корисна.

В 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. Про всяк випадок очищаємо кеш

і наш користувач з обмеженими правами і доступами до файлової системи створений!

Не скажу, що це досить легко, але якщо робити це на автоматизм, то це не здасться чимось важким. Сподіваюся у вас все вийшло! Удачі в проектах!

Стаття, в якій розглянемо, як в 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-\u003e get ( "username");

Виклик сниппета на сторінці:

[[! GetUser]]

Результат праці:

(Anonymous)

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

Типові інструкції по налаштуванню дозволів

У цьому розділі розглянемо інструкції, які можна використовувати, коли вам необхідно:

  • обмежити доступ до певних ресурсів для анонімних користувачів;
  • створити контент менеджера, якого Суд має надати доступ для роботи з ресурсами в адмінці, а також можливість завантажувати картинки.

Обмеження доступу до певних ресурсів

Розглянемо приклад, в якому обмежимо доступ анонімним користувачам до певних ресурсів (наприклад, до особистого кабінету, на сторінку «Зміни пароля» і т.п.). Доступ до цих ресурсів надамо тільки зареєстрованим користувачам.

Щоб це здійснити необхідно:

  1. створити групу ресурсів Users (Вміст -\u003e Групи ресурсів -\u003e кнопка «Створити групу ресурсів»). У формі, що з'явилася ввести в поле «Ім'я» - Users і натиснути на кнопку «Зберегти». Помістити в неї потрібні ресурси (доступ, до яких необхідно обмежити для анонімних відвідувачів).
  2. створити групу користувачів Users (Іконка «шестерінки» -\u003e Контроль доступу -\u003e кнопка «Нова група користувачів»). У діалоговому вікні ввести в поле «Ім'я» - Users, «Контекст» - web, «Політики бекенда» - (Немає політики).
  3. Перейти в режим редагування групи (в контекстному меню Users вибрати пункт «Редагувати групу користувачів»).
  4. Відкрити вкладку «Права доступу», а в ній «Доступ до груп ресурсів». Натиснути на кнопку «Додати групу ресурсів» і заповнити форму, що відкрилася ( «Група ресурсів» - Group, «Контекст» - (Web), Мінімальна роль - Member (9999), «Політика доступу» - Load, List and View).

Після цього, будь-який анонімний або інший користувач (у якого немає прав) отримає 404 ресурс (Тому що у нього немає навіть права load), Якщо він спробує відкрити якусь ту сторінку з цієї групи.

Якщо ж ви хочете анонімних користувачів, при відкритті захищених сторінок, пересилати на якусь іншу (наприклад, авторизації), то необхідно виконати додатково ще наступне (а саме дати право load для цієї групи ресурсів):

  1. відкрити системні настройки (Іконка «шестерінки» -\u003e Системні налаштування). Вибрати простір імен «core», розділ «Сайт». знайти параметр unauthorized_page (Сторінка помилки 403 «Доступ заборонений») і вказати йому в якості значення - id ресурсу, Що містить форму «Авторизации».
  2. Перейти в режим редагування групи (Анонім). У розділі «Доступ до груп ресурсів» (вкладка «Права доступу») додати групу ресурсів Users і виставити їй необхідні права (в даному випадку «Контекст» - (Web), Мінімальна роль - Member (9999), «Політика доступу» - Load Only).
Налаштування доступу до групи ресурсів Users для анонімних користувачів

Налаштування прав для контент менеджера

У цьому прикладі створимо групу «Managers», користувачі якої зможуть в адмінці завантажувати зображення в директорію і працювати з певними ресурсами.

Щоб це здійснити можна, наприклад, скористатися наступною інструкцією:

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

  • Відкрити сторінку у «Контроль доступу» (іконка «шестерінки» -\u003e Контроль доступу) і перейти на вкладку «Політика доступу».
  • Зробити копію політики «Content Editor».
  • Відредагувати створену копію, а саме змінити поле ім'я на Manager і встановити галочки навпроти прав directory_list, file_list, file_manager, file_remove, file_tree, file_upload. У підсумку політика доступу Manager матиме 30 дозволів. Це необхідно зробити для того, щоб користувачеві надати права для роботи з файлами.
  • Натиснути на кнопку «Зберегти».
Форма настройки політики доступу Manager

2. Приховати ресурси, до яких менеджери не повинні мати доступ в адмінці:

  • Відкрити сторінку у «Групи ресурсів» і натиснути на кнопку «Створити групу ресурсів».
  • У формі ввести в «Ім'я» - ClosedForManagers, «Контекст» - mgr і відзначити опцію «Автоматично дати доступ групі Administrator».
  • Клікнути на кнопку «Зберегти».
  • Перетягнути в створену групу ресурси, які необхідно приховати для менеджерів в адмінці.

3. Надати доступ до директорії, в яку користувач буде завантажувати картинки.

  • Відкрити сторінку у «Джерела файлів», клікнути на кнопку «Створити нове джерело файлів».
  • У формі ввести в поле «Ім'я» текст Images, В «Опис» - зображення, В «Тип джерела файлів» - файлова система.
  • Натиснути на кнопку «Зберегти».
  • Відредагувати щойно створений джерело файлів (права кнопка миші -\u003e дія «Редагувати»).
  • Змінити значення параметрів: basePath - assets / images /, BaseUrl - assets / images /, AllowedFileTypes - jpg, jpeg, png, gif.
  • Клікнути на кнопку «Зберегти».
Налаштування джерела файлів Images

Джерело файлів, що не має пов'язаної з ним групи користувачів, буде доступний всім користувачем бекенда. Тому щоб для користувачів групи Managers не з'являлися інші джерела файлів, які не пов'язані ні з однієї групи, їх, наприклад, можна додати їх до групи користувачів Administrator.

MODX - Скріплення джерела файлів Filesystem з групою Administrator

Система розмежування доступу MODX за допомогою джерела файлів дозволяє різним користувачам задати певні каталоги, до яких вони матимуть доступ, а також визначити набір їх привілеїв в них. Іншими словами - це система, яка за допомогою якої, наприклад, одним користувачам можна дати одні каталоги, а іншим - інші.

4. Створити нову групу користувачів і призначити їй необхідні права.

  • Відкрити сторінку у «Контроль доступу», перейти на вкладку «Групи користувачів & Користувачі», натиснути на кнопку «Створити нову групу користувачів».
  • У діалоговому вікні заповнити наступні поля: «Ім'я» - Managers; «Опис» - Менеджери; «Контекст» - web, mgr; «Політика бекенда» - Manager.
  • Натиснути на кнопку «Зберегти».
  • Перейти в режим редагування щойно створеної групи користувачів «Managers» (натиснути правою кнопкою миші на групі -\u003e пункт в контекстному меню «Редагувати»).
  • Перейти на вкладку «Права доступу».
  • Відкрити розділ «Доступ до контекстам». доступ контексту web: «Мінімальна роль» - Member (9999); Політика доступу - Load, List and View. Доступ до контексту mgr: «Мінімальна роль» - Member (9999), Політика доступу - Manager.
  • У розділі «Доступ до джерела файлів» додамо новий запис, що має наступні значення: «Джерело» - Images; «Мінімальна роль» - Member (9999), «Політика доступу» - Media Source Admin.
  • Натиснути на кнопку «Зберегти»

5. Створити користувача і додати його в групу «Manager». Як значення ролі встановити йому число 9999 (Member). Даною ролі йому буде досить, щоб отримати всі дозволи даної групи. Це пов'язано з тим, що для цієї групи ми не призначали політики доступу для яких треба було б роль більше ніж 9999.

Додавання користувача до групи Manager (роль Member)

В 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. Про всяк випадок очищаємо кеш

і наш користувач з обмеженими правами і доступами до файлової системи створений!

Не скажу, що це досить легко, але якщо робити це на автоматизм, то це не здасться чимось важким. Сподіваюся у вас все вийшло! Удачі в проектах!