Modx групи ресурсів для чого потрібні. Закриваємо сторінки від гостей

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

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

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

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

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

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

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

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

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

[] `& Field \u003d` pagetitle`]]

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрий день, дорогі читачі. Сьогодні я розповім як приховати системні або непотрібні для менеджера ресурси з дерева документа на сайті під управління 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 і до нових уроків. Сподіваюся допоміг. Добро.