MODx Revolution: створення ресурсів та завантаження файлів з фронтенду. MODx Revolution: створення ресурсів та завантаження файлів з фронтенду Створюємо нову групу: Ім'я - Manager, Політика бекенда - немає політики, тиснемо "Зберегти"

Головна / Оптимізація роботи

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

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

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

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

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

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

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

Однак практично всі сніпети, які мені вдалося знайти, були дуже громіздкими: кожен 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 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); right type of file? , $filename); // Create directory for move file in to 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 (якщо вам потрібно в subsequent hooks) $myFile = $upload path. $ 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; ($sf, $errorMsg), $output = false; $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. Про всяк випадок очищаємо кеш

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

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

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

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

MODX Revolution не дозволяє безпосередньо призначати права користувача. У цій системі ця дія здійснюється через групи користувачів.

Іншими словами, для того, щоб користувачеві надати деякі права, необхідно:

  • створити групу та призначити їй потрібні привілеї;
  • помістити одного або кількох користувачів у цю групу.

Але знаходження користувача групи не означає те, що він отримає всі її привілеї. Права, які отримає користувач, будуть визначатися за допомогою відведеної йому у цій групі ролі.Роль (ранг) користувача групи визначається за допомогою числа від 0 до 9999. Це значення визначає, які користувач отримає привілеї групи, а які ні.

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

Розберемо невеликий приклад.


У цьому прикладі:

  • Користувач User1належить до групи Group1. Він має ті привілеї групи, роль яких більша 2000 .
  • Користувач User2складається у 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та натиснути на кнопку «Зберегти». Помістити в неї необхідні ресурси (доступ, до яких необхідно обмежити для анонімних відвідувачів).
  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. Перейти до режиму редагування групи (анонім). У розділі «Доступ до груп ресурсів» (вкладка «Права доступу») додати групу ресурсівта виставити їй необхідні права (в даному випадку «Контекст» - (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/, забороненіFileTypes - 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)

© 2022 androidas.ru - Все про Android