Запрошуємо вас на захопливий маскарад! Його місія — перевірити, що кожен користувач може бачити і робити на вашому сайті. Drupal має неперевершено гнучку систему ролей і дозволів та чудові можливості з тонкого налаштування доступів. Все це дуже важливо як для безпеки в Друпалі, так і для створення цікавих фіч. І цими перевагами можна скористатися в повній мірі, а потім протестувати результат за допомогою модуля Masquerade. Цікаво? Тож нехай маскарад розпочинається!
Як працює модуль Masquerade
Суть маскараду
Щоб перевірити нові фічі або налаштування, пов’язані з доступами чи дозволами для користувачів, адміністратори сайтів та сайт-білдери часто створюють тестові користувацькі акаунти. Без модуля Masquerade їм необхідно заходити і виходити з цих акаунтів, що не дуже зручно.
Модуль Masquerade дозволяє просто перемикатися між акаунтами без процедур логінації, і переміщуватись по сайту як конкретний користувач. Тобто можна з легкістю одягнути «маску» користувача, а потім зняти її, клікнувши “Unmasquerade”.
Хто кого може «грати»: користувацькі дозволи
Зазвичай можливість «маскарадитись» є тільки у користувача з роллю адміністатора. Однак, дозволи використовувати маскарад можна детально налаштувати в People — Roles — Permissions.
Як бачимо, немає опції маскуватись під анонімного користувача, адже вона завжди спричиняла певні збої на сайтах.
Як почати маскарад і перемикатися між користувачами
Модуль працює трохи по-різному в Drupal 6, 7 і 8. Сьогодні ми розглядаємо його на прикладі Drupal 8.
Отже, коли модуль Masquerade встановлено і увімкнено, з’являється опція “Masquerade as” навпроти кожного користувача — у спадному меню “operations”. Вона також є на сторінці користувача.
Крім того, можна розмістити будь-де на сайті зручну форму для перемикання користувачів. Вона працює як блок. У Structure — Block layout ми клікаємо на регіон сайту, в якому хочемо бачити цю формочку, натискаємо “Place block”, знаходимо в списку “Masquerade — Forms”, знову натискаємо “Place block” і врешті-решт зберігаємо блоки.
Дуже зручно, коли кнопка “Masquerade as” розміщена в лівому сайдбарі. Ну і, звісно, не губимо дуже важливий лінк “Unmasquerade”, який знаходиться в верхній частині сайту.
Приклад використання модуля Masquerade
А зараз час запросити до нашого маскараду парочку нових учасників! Ними будуть тестові залогінені користувачі Коломбіна і Арлеккіно. У нашому прикладі залогінені користувачі можуть публікувати власний контент. В кожного користувача повинна бути сторінка “My masquerade photos”, де вони зможуть побачити фотографії, які самі додали.
Для цього експерименту потрібно, аби хоча б декілька фото були додані авторами Коломбіна і Арлеккіно. Це налаштувати можна в опції “Authored by” біля кожної одиниці контенту.
А зараз створимо просту в’юшку з усіма фото. Поки що вони показує всі фотографії одразу, незалежно від користувача, який їх додав.
А щоб досягти фільтрації, зайдемо в налаштування “Advanced”. Давайте додамо зв’язок (“relationship”) до автора контенту. А потім — створимо контекстуальний фільтр, що показуватиме тільки той контент, автор якого збігається за ID з поточним користувачем, що переглядає сторінку. Згодом модуль Маскарад допоможе нам перевірити, чи дійсно користувач бачить лише фото свого авторства.
Тож гра починається — ми переходимо на форму “Masquerade as” у лівому сайдбарі і маскуємось під користувача Коломбіна. Отже, все чудово, і ми дійсно бачимо тільки її контент!
Оскільки лише адміністратор може використовувати маскарад, а ми зараз «граємо» Коломбіну, форма “Masquerade as” для нас зникла з лівого сайдбару.
Натискаємо “Unmasquerade” вгорі сторінки, щоб повернутися до акаунта адміністратора, і починаємо «маскарадитись» як Арлеккіно. Ми бачимо лише його контент. Все працює!
Не забуваємо про лінк “Unmasquerade”. Маскарад був вдалим і тепер він завершився!
Наостанок
Це був коротенький огляд того, як працює модуль Masquerade у тестових цілях. Drupal ховає ще багато секретів, і його можливості безмежні.
Звертайтесь до нашої команди, якщо ви хочете створити чудові фічі, пов’язані з користувацькими доступами, навести лад в ролях і дозволах, отримати допомогу в тестуванні, і так далі!