• Блог
  • [AdminTools] Права доступа

Настройка прав доступа в MODX — занятие очень не простое и требующее время для познания. С наскока управиться с ними не получится. И если нужно настроить админку для разных групп пользователей, то деваться не куда — придётся сесть и разобраться с ними. Но когда нужно просто ограничить доступ к ресурсам на сайте, то можно обойтись упрощённым механизмом прав доступа из библиотеки AdminTools.

Решение достаточно простое — у ресурса добавляется вкладка «Права доступа» и в ней можно перечислить, кому показывать страницу, а кому нет. Причём в привычном для многих стиле.

Принцип работы

Чтобы заработал этот упрощённый механизм прав доступа, нужно включить системную настройку admintools_alternative_permisions. После этого у ресурса будет доступна вкладка «Права доступа». Если права не указаны, то ресурс доступен всем без ограничений. Как только добавили права, начинает работать проверка.

Чтобы добавить запись, нажимаем кнопку + Добавить и выбираем нужную строчку в списке «Группа/пользователь».

В списке можно выбрать следующие пункты:

  • Все
  • Гости
  • Группы пользователей
  • Пользователи

Первые 2 строчки списка, думаю, пояснять не нужно. Дальше идут группы. Они выделены жирным шрифтом и обозначены иконкой с несколькими пользователями. Затем перечисляются пользователи (иконка с одним пользователем). Если выбрана группа пользователей, то становится доступным поле «Приоритет». Поясню, зачем оно нужно.

Проверка прав идет последовательно в порядке создания записей. Если указано несколько групп, то права пользователя будут такие, какие указаны для последней группы. Но если у первой группы указать приоритет выше остальных групп, то её права будут выше. Это может пригодится, например, если пользователям группы «Администратор» разрешить доступ, а другой группе, добавленной позже, запретить. Тогда, если пользователь входит в обе группы, а у группы «Администратор» приоритет выше, то доступ для пользователя будет открыт. Это что касается приоритета групп. А ещё есть приоритет (вес) записей.

У записи «Все» наименьший приоритет. У пользователя — максимальный приоритет. Т.е. если группе пользователей дан доступ к ресурсу, а пользователю, входящему в данную группу — нет, то для него этот ресурс будет недоступен и он будет перенаправлен на страницу, указанную в системной настройке unauthorized_page.

Для доступа к странице необязательно добавлять права для всех. Т.е. если вы хотите ограничить доступ к странице сайта только для анонимов (гостей), то достаточно добавить запись «Гости» и указать действие «Запрещено». Но вот если вдруг вам захочется ограничить доступ для авторизованных пользователей, то тогда запись «Все» очень пригодится — нужно запретить для нее доступ, а гостям доступ разрешить.

Пример

Чтобы закрыть страницу от неавторизованных пользователей, достаточно добавить запись «Гости» и запретить доступ. Всего одно действие! И сравните с обычной настройкой MODX. Чувствуете разницу?

В общем, пробуйте. Компонент доступен в официальном репозитории modx.com.

0   5027

Комментарии ()

  1. Batys 31 января 2018 # 0
    Очень хороший модуль, Спасибо огромное! А как нибудь можно с помощью данного модуля организовать и запрет вывода товаров в minishop2 для разных групп?

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.