Група ресурсів modx. Як приховати ресурси у дереві документів з адмінки менеджера Modx Revolution. Перенесення необхідних ресурсів у групу ресурсів Admin

Головна / Захист

У MODX є цікава можливість – ви можете міняти зовнішній виглядформи редагування ресурсів практично як вам заманеться. Причому ви можете зробити різні форми для різних груп користувачів і навіть для різних ресурсів. Можна вибирати різні профілі форм для даного ресурсузалежно від його шаблону, батька чи інших властивостей.

І для цього нам не доведеться писати жодного рядка коду!

Давайте, подивимося, що, наприклад, можна зробити з формами:

По-перше, приберемо зайві пункти верхнього меню в один загальний пункт – «Розробнику». Для цього заходимо до розділу «Система» -> «Дії», створюємо докорінно новий пункт меню і перетягуємо всі непотрібні пункти туди:

Далі заходимо в розділ «Безпека» -> «Налаштування форм» та створюємо новий профільнаприклад, «Контент-менеджер». Потім натискаємо на ньому правою кнопкою миші та вибираємо "Редагувати", переходимо на вкладку "Групи користувачів" і додаємо групу, до якої будуть застосовані нові правила.

Далі ми створюємо новий набірправил. Їх два види – один для форми створення ресурсу, другий – для форми його редагування (create та update, відповідно). Цих правил може бути кілька – хоч за правилом для кожного ресурсу.

Після того, як правило буде створено, ви побачите сторінку налаштування – там три вкладки: Інформація про набір правил, Регіони, Додаткові поля.

На першій вкладці перелічені стандартні поля ресурсу. Їх можна відключати або перейменовувати. Регіони - це вкладки ресурсу. Ви можете створити новий регіон і помістити туди деякі параметри ТБ, тоді вони будуть у ресурсу не на вкладці «Додаткові поля», а на новому вкладі - яку ви вкажете. Тут можна відключати стандартні вкладки, наприклад, «Групи ресурсів».

На третій вкладці ви вказуєте розташування того чи іншого параметра ТБ.

Я зробив невелику шпаргалку стандартними регіонами:



Отже, давайте відразу приберемо для користувача всі вкладки, крім першої. Забираємо галочки у регіонів: modx-page-settings, modx-panel-resource-tv, modx-resource-access-permissions. Далі - зі стандартних полів залишимо тільки pagetitle та alias. В інших галочки прибираємо. Вказуємо нову назву для поля pagetitle: «Заголовок новини» та alias: «Адреса сторінки».

Після цього переходимо на вкладку «Додаткові поля» та вказуємо, що ТБ-параметри повинні знаходитися в тій чи іншій області форми (відповідно до шпаргалки).

Залишилося вказати, для яких ресурсів діє це правило - у пункті «Шаблон» вказуємо, до ресурсів із яким шаблоном застосовувати правило. Якщо правило для всіх шаблонів, нічого не вказуємо. І ще є два пункти: «Обмежувальне поле» та «Обмежувальне значення». Тут можна вказувати інші поля.

Давайте, вкажемо, що це правило стосується ресурсів, що знаходяться в «Новинах» - у пункті «Обмежувальне поле» пишемо parent, а в «Обмежуюче значення» id ресурсу «Новини», наприклад, 22 .

Стаття, у якій розглянемо, як у 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)

Доброго дня, дорогі читачі. Сьогодні я розповім як приховати системні чи не потрібні для менеджера ресурси з дерева документа на сайті під керування Modx Revolution(поточна версія 2.4.2 ). Для початку зрозуміємо, для чого нам це потрібно. У дереві документи ми маємо системні ресурси, які ми не показуємо в меню. Це, скажімо, sitemap, результати пошуку, 404 сторінка, Сайт не доступний і багато інших. І дуже не хотілося б, що звичайний менеджер бачив ці ресурси у дереві документів. І в Modx Revolutionпередбачено це – їх можна просто приховати. Як це робиться, я зараз докладно опишу. Як приклад я наведу один із моїх сайтів. Його дерево документів виглядає так:

Ми бачимо, що тут є системні ресурси, які не відображаються в меню: Sitemap, Кошик товарів, Результати пошуку та Оформлення замовлення. Нам потрібно приховати ці ресурси від дуже цікавого менеджера, щоб він там нічого не напортачив.

Створюємо групу ресурсів

​Заходимо в Вміст/Групи ресурсів

та натискаємо на кнопку "Створити групу ресурсів"

та створюємо групу "Admin"(ви можете назвати інакше)

Жодні галочки не виставляємо. Тиснемо кнопку «Зберегти»

Перенесення необхідних ресурсів у групу ресурсів Admin

Даємо доступ до групи ресурсів Admin тільки групі користувачів Administrator

Для цього заходимо в "Контроль доступу"

Клацаємо правою кнопкою миші по групі користувачів "Administrator"і тиснемо "редагувати групу користувачів"

Ідемо на вкладку "Права доступу"

Тут йдемо у вкладку «Доступи до груп ресурсів»

І тиснемо кнопку «Додати групу ресурсів»

  • Група ресурсів:"Admin"
  • Контекст: Manager (mgr)
  • Мінімальна роль: Member-9999
  • Політика доступу: Resource

Оновлюємо адмінку менеджера та бачимо, що ресурси, які ми додали до групи ресурсів "Admin"зникли.

Звичайно за умови, якщо ви створювали адмінку менеджера з цієї .

Наступного разу, коли Вам потрібно буде приховати будь-який ресурс, Ви просто можете зайти в цей ресурс, натиснути на «Групи користувачів»і відзначити галочку навпроти "Admin"

На цьому у мене все, успіхів Вам у освоєнні Modx Revolutionта до нових уроків. Сподіваюся, допоміг. Ласкаво.

Однією з перших проблем, з якими я зіткнувся при переході на ModX Revolution, не знав, як вивести ім'я категорії (батька) в анонсі статті на головній сторінці. Незважаючи на зусилля, Google давав дуже мізерну інформацію і здебільшого по попередній гілці Evo. Так чи інакше вирішення проблеми є і сьогодні я розповім Вам як вивести ім'я категорії на головній сторінці сайту Modx Revolution.

Що таке Ресурс у ModX Revolution?

Під ресурсом в CMS/CMF ModX розуміються будь-які сторінки, створені в адмінці, це можуть бути як звичайні сторінки на сайті (документи), так і звичайні веб-посилання, символічні посилання, статичний елемент або файли. За умовчанням під ресурсом мається на увазі документ, він і є сторінкою на вашому інтернет-сайті.

Ресурс може бути контейнером і виступати в ролі каталогу включаючи групу інших ресурсів. Приклад:

  • Створення сайтів (Категорія)
  • - Як створити сайт з нуля? (Стаття в блозі)
  • - Як зареєструвати домен? (Стаття в блозі)
  • Як вивести назву категорії в ModX?(Стаття в блозі)

Виводимо ім'я категорії, в якому знаходиться стаття в ModX Revolution

Тепер ми знаємо, що таке ресурс і перед нами постало завдання вивести ім'я батька, Тобто контейнера в кожну запис в анонсі на сайті.

Для початку ми повинні встановити те, за допомогою чого виводитимемо, а саме пакет pdoTools, якщо він у Вас не встановлений, то бігом заходимо в установник пакетів і ставимо його, він включається безліч сніпетів, які нам допоможуть і саме за допомогою нього я виводжу всі записи у блозі. Нам знадобиться один зі сніппетів, які входять до складання pdoTools, а саме pdoField, який виводить будь-яке поле зазначеного ресурсу або його батька, включаючи TV параметри.

Після встановлення пакета, відкриває шаблон який відповідає за виведення анонсу статті та розміщуємо простий код

[]`&field=`pagetitle`]]

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

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

Група користувачів

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

Натискаємо кнопку Нова група користувачів.

Далі потрібно вказати у новоствореної групи права доступу до контексту Web - Load, List and View.

Група ресурсів

Тепер потрібно створити групу ресурсів, до якої будуть входити сторінки закритого доступу. У верхньому меню адмінки вибираємо пункт Вміст > Групи ресурсів. У вікні, натискаємо кнопку Створити групу ресурсів. Заповнюємо поля у діалозі групи ресурсів.

Натискаємо кнопку Зберегти. Вже тут ми можемо додати приватні сторінки групу ресурсів - з правої частини мишкою переносимо потрібну сторінку до групи ресурсів зліва. Але налаштування ще не закінчено. Тепер нам потрібно відредагувати права доступу до групи ресурсів, тому що MODX за промовчанням дає неправильні права. Ідемо знову в «Контроль доступу» та змінюємо доступ до групи ресурсів у груп "(анонім)" та "Users" на Load onlyі Load, List and View.

Навіщо анонімам надавати доступ до закритих ресурсів? Якщо не дати, MODX не зможе завантажити сторінку і видасть код 404 «не знайдено». А так MODX завантажить сторінку, перевірить права та віддасть 403 «доступ заборонено». До речі, бажано у системному налаштуванні unauthorized_pageвказати id сторінки, на яку MODX буде перенаправляти користувачів, що не пройшли перевірку.

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

На цьому налаштування закінчено. Тепер, коли гість спробує відкрити сторінку для авторизованих користувачів, він буде перенаправлений на сторінку, яку ви вказали у системних налаштуваннях у ключі unauthorized_page.

21 грудня 2015, 12:28 0 5204

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