Страницы только для участников
Последнее обновление Sep 2nd, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreВведение¶
В MODX Revolution другая система безопасности: больше гибкости при выдаче (и запрете) доступа к ресурсам Manager и Web. Этот документ помогает войти в основы этой продвинутой схемы.
На front-end часто нужны страницы, которые видят только определённые пользователи. Урок показывает, как сделать это в MODX Revolution. Предполагается, что вы уже умеете регистрировать пользователей и входить через компоненты пакета Login. Описанные шаги не влияют на то, какие ресурсы пользователь видит или правит в MODX Manager.
Если вы уже ориентируетесь, ниже краткий список. Он проведёт по схеме или напомнит порядок. Если нужны подробности и примеры, прокрутите к соответствующим подразделам.
- Создайте Resource Group (Security -> Resource Groups -> Create Resource Group)
- Привяжите ресурс «только для участников» к Resource Group. (Через редактирование ресурса или перетаскиванием из дерева ресурсов вправо)
- Создайте User Group (Security -> Access Controls -> User Groups -> New User Group)
- На вкладке Resource Group Access добавьте запись (context: web, minimum role: Member (9999), access policy: Resource)
- Добавьте пользователей в группу с ролью Member. (Security -> Manage Users)
- Сбросьте права (Security -> Flush Permissions) и проверьте в другом браузере (не просто в другом окне: в другом браузере)
Access Wizard (2.2.2 и новее)¶
В MODX 2.2.2 есть access wizard, который упрощает процесс. Пошаговое объяснение по-прежнему верно, но wizard сокращает шаги. Имеет смысл прочитать оба варианта, чтобы лучше понять, как части системы безопасности MODX связаны.
1. Создайте Resource Group¶
Откройте Security -> Resource Groups и нажмите Create Resource Group. Появится окно примерно такое: 
Разберём секции:
| Section | Explanation | Tutorial Default |
|---|---|---|
| Name | Имя создаваемой группы ресурсов. Сделайте его понятным и лёгким для запоминания. | Protected |
| Contexts | Контекст, в котором действуют правила. В этом уроке один контекст, "web", и скрывать нужно только там. | web |
| Automatically give Administrator Group Access | Если отметить, все пользователи группы administrator по умолчанию получат доступ к группе ресурсов. С 2.2.1 пользователь admin по умолчанию помечен как "sudo" и видит все группы ресурсов независимо от доступа группы administrator. Если есть другие администраторы без sudo и вы хотите, чтобы они видели ресурсы группы, отметьте этот пункт. | checked |
| Automatically give Anonymous Group Access | Если отметить, все пользователи группы anonymous получат доступ к группе ресурсов. Посетитель сайта без входа считается в группе anonymous. Мы защищаем страницы от незалогиненных, поэтому в уроке оставляем пункт снятым. | unchecked |
| Create Parallel User Group | Не обязательно держать всех, кто видит страницы «только для участников», в группе administrator (если отметили "Automatically give Administrator Group Access"). Можно создать другую группу пользователей с доступом к ресурсам этой группы ресурсов. Отметьте: участники не администраторы. | checked |
| Automatically Give Other User Groups Access | Если до урока у вас уже были группы пользователей, которым нужен доступ, перечислите их здесь. |
Готово: есть группа ресурсов и группа пользователей. Дальше добавьте ресурсы в группу ресурсов и пользователей в группу пользователей.
2. Добавьте ресурсы в Resource Group¶
Укажите MODX, какие ресурсы защищать. Оставайтесь на странице из шага 1 (Security > Resource Groups). Справа откройте контекст web, чтобы видеть страницы сайта. Перетащите их из правой колонки в группу ресурсов. Либо откройте каждый ресурс, вкладку Resource Groups и отметьте Access в строке "Protected".
3. Добавьте пользователей в User Group¶
Со страницей Resource Group закончили. Откройте Security > Access Controls. На вкладке Users Groups виден список групп. Правым кликом по группе "Protected" выберите "Add User to Group". В "Name" выберите пользователя. В Role пока поставьте "Member". Роли задают, что пользователь может внутри группы, но для урока такая тонкость не нужна. Нажмите Save.
Важно: как только вы защитили ресурс, (1) назначив его в одну или несколько групп ресурсов и (2) связав группу ресурсов с группой пользователей через access control, эти страницы перестанут показываться пользователям вне связи с группой ресурсов. Поведение по умолчанию: страница 404. Если нужен ответ 401, группе anonymous нужно разрешение "load" на группу ресурсов. Подробнее в другом уроке. Сейчас ваша страница ещё не видна: вы ещё не добавили её в группу пользователей.
Ресурсы в группе ресурсов, пользователи в группе пользователей. Готово? Нет: осталось несколько мелочей. Если это ваш первый опыт с безопасностью MODX, часто ловят такой момент: у созданной группы пользователей нет context access к front-end контексту web. То есть если бы контекст был доступен, были бы доступны и защищённые ресурсы. Сейчас контекст недоступен. Дайте группе право смотреть этот контекст.
4. Добавьте Context Access группе пользователей¶
Откройте Security > Access Controls. Правым кликом по защищённой группе выберите "Update user group". Вкладка Context Access. Нажмите "Add Context". Появится диалог как ниже. Разберём: 
| Section | Explanation | Tutorial Default |
|---|---|---|
| Context | Контекст, к которому даёте доступ. Базовый случай: web и mgr. Web это публичный front-end сайта, mgr это закрытый back-end (менеджер, в котором вы вошли). | web |
| Minimum Role | К каким ролям применяется правило. Если ко всем в группе, выберите "Member - 9999". Здесь как раз та тонкая настройка, о которой речь выше. | Member - 9999 |
| Access Policy | Какие разрешения получают пользователи. Разные политики дают группам разные возможности. | Administrator |
Сделайте одно правило: "web", "Member - 9999" и "Load, List and View". Если нужен вход в менеджер MODX, добавьте второе правило для mgr: "mgr", "Member - 9999" и "Administrator". Тогда у всех этих пользователей будет admin-доступ. Чтобы сузить права, вместо этого выберите "Content Editor" или "Developer". Либо создайте свою политику в Security > Access Policies, если нужно точно задать, что можно и чего нельзя.
Пользователи в группе, ресурсы в группе ресурсов, группа видит контекст. Почти готово.
5. Flush Permissions¶
Чтобы увидеть изменения, сбросьте, что видят и делают отдельные пользователи. Откройте Security > Flush Permissions. На front-end проверяйте в другом браузере. Около 90% проблем идут от проверки не в другом браузере или от пропуска flush. Не ленитесь открыть второй браузер. Готово: страницы только для участников настроены.
Иногда нужно очистить кэш сайта, особенно для контекста mgr: элементы и ресурсы могут кэшировать права.
Пошаговое объяснение (до 2.2.2)¶
Если wizard вам меньше подходит или вы хотите понимать, что происходит при каждом праве и access entry, этот раздел полезен. С 2.2.2 в MODX есть Access Wizard, и с него можно начать.
1. Создайте Resource Group¶
Resource Group это набор ресурсов, который вы связываете с группами пользователей и записями access list. Создав группу, вы легко относите страницы к видимости только для определённых групп или ролей внутри групп.
Чтобы создать группу, откройте Security -> Resource Groups и нажмите Create Resource Group. В окне введите имя. В уроке ожидается имя "Protected".
2. Привяжите ресурс «только для участников» к Resource Group¶
Группа есть. Добавьте в неё ресурсы. Способов два.
Первый: Security -> Resource Groups и перетащите ресурсы из правого дерева в левые группы ("Protected"). Второй: откройте ресурс и отметьте Access на вкладке Resource Groups.
3. Создайте User Group¶
Ресурсы в группе. Решите, кто их увидит. Для этого создайте новую группу пользователей.
Откройте Security -> Access Controls. На вкладке User Groups (по умолчанию) нажмите New User Group. Задайте имя группы и отправьте форму.
4. Добавьте доступ к Resource Group¶
Перейдите на вкладку "Resource Group Access". Здесь задают, к каким группам ресурсов есть доступ у группы пользователей. Три из четырёх полей похожи на Context Access: Context, Minimum Role и Access Policy. Четвёртое: Resource Group. Как ясно из имени, это группа ресурсов, к которой есть доступ.
Настройки:
- Resource Group: как вы назвали, например "Protected"
- Context: web
- Minimum role: Member (9999)
- Access Policy: Resource
Важно: как только вы защитили ресурс, (1) назначив его в одну или несколько групп ресурсов и (2) связав группу ресурсов с группой пользователей через access control, эти страницы перестанут показываться пользователям вне связи с группой ресурсов. Поведение по умолчанию: страница 404. Если нужен ответ 401, группе anonymous нужно разрешение "load" на группу ресурсов. Подробнее в другом уроке. Сейчас страница ещё не видна: вы ещё не добавили её в группу пользователей.
5. Добавьте пользователей в группу¶
Добавьте пользователей в группу: через редактирование пользователя или вернувшись на вкладку Users. Спросят User Group и Role. Мы исходили из роли Member с authority 9999, её и используйте.
Если регистрация идёт через websignup snippet, убедитесь, что он сам кладёт пользователей в нужную группу.
6. Flush permissions¶
Когда настройки готовы, выполните flush permissions (Security -> Flush Permissions), иначе эффекта не будет. На front-end проверяйте целиком в другом браузере. Не другая вкладка и не другое окно: там всё ещё учтут вход в Manager.
Иногда также нужно очистить кэш сайта, особенно для контекста mgr: элементы и ресурсы могут кэшировать права.
Всё ещё не работает?¶
Пройдите шаги по порядку и убедитесь, что flush permissions выполнен. Если всё кажется верным, проверьте ещё раз и спросите на Forums. Если урок кажется неточным или вводящим в заблуждение, напишите в теме форума (ссылка ниже), что исправить.
Смотрите также¶
Руководство Bob по правам: http://bobsguides.com/revolution-permissions.html
Тема форума по этому уроку: https://forums.modx.com/index.php/topic,51259.0.html
Базовая зона "Members Only" через Login Snippet: Login.Basic Setup
Безопасность: Security
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










