[AdminTools] Права доступа для ресурсов
Настройка прав доступа в MODX — занятие очень не простое и требующее время для познания. С наскока управиться с ними не получится. И если нужно настроить админку для разных групп пользователей, то деваться не куда — придётся сесть и разобраться с ними. Но когда нужно просто ограничить доступ к ресурсам на сайте, то можно обойтись упрощённым механизмом прав доступа из библиотеки AdminTools.
Решение достаточно простое — у ресурса добавляется вкладка «Права доступа» и в ней можно перечислить, кому показывать страницу, а кому нет. Причём в привычном для многих стиле.
Принцип работы
Чтобы заработал этот упрощённый механизм прав доступа, нужно включить системную настройку admintools_alternative_permisions. После этого у ресурса будет доступна вкладка «Права доступа». Если права не указаны, то ресурс доступен всем без ограничений. Как только добавили права, начинает работать проверка.
Чтобы добавить запись, нажимаем кнопку + Добавить и выбираем нужную строчку в списке «Группа/пользователь».
В списке можно выбрать следующие пункты:
- Все
- Гости
- Группы пользователей
- Пользователи
Первые 2 строчки списка, думаю, пояснять не нужно. Дальше идут группы. Они выделены жирным шрифтом и обозначены иконкой с несколькими пользователями. Затем перечисляются пользователи (иконка с одним пользователем). Если выбрана группа пользователей, то становится доступным поле «Приоритет». Поясню, зачем оно нужно.
Проверка прав идет последовательно в порядке создания записей. Если указано несколько групп, то права пользователя будут такие, какие указаны для последней группы. Но если у первой группы указать приоритет выше остальных групп, то её права будут выше. Это может пригодится, например, если пользователям группы «Администратор» разрешить доступ, а другой группе, добавленной позже, запретить. Тогда, если пользователь входит в обе группы, а у группы «Администратор» приоритет выше, то доступ для пользователя будет открыт. Это что касается приоритета групп. А ещё есть приоритет (вес) записей.
У записи «Все» наименьший приоритет. У пользователя — максимальный приоритет. Т.е. если группе пользователей дан доступ к ресурсу, а пользователю, входящему в данную группу — нет, то для него этот ресурс будет недоступен и он будет перенаправлен на страницу, указанную в системной настройке unauthorized_page.
Для доступа к странице необязательно добавлять права для всех. Т.е. если вы хотите ограничить доступ к странице сайта только для анонимов (гостей), то достаточно добавить запись «Гости» и указать действие «Запрещено». Но вот если вдруг вам захочется ограничить доступ для авторизованных пользователей, то тогда запись «Все» очень пригодится — нужно запретить для нее доступ, а гостям доступ разрешить.
Пример
Чтобы закрыть страницу от неавторизованных пользователей, достаточно добавить запись «Гости» и запретить доступ. Всего одно действие! И сравните с обычной настройкой MODX. Чувствуете разницу?
В общем, пробуйте. Компонент доступен в официальном репозитории modx.com.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()