Ограничиваем дерево ресурсов
В этой статье я покажу как можно ограничить вывод ресурсов в дереве ресурсов для определённых групп пользователей в админке. Например, для контент-менеджеров вывести только раздел со статьями. Зачем им показывать главную страницу, страницу с контактами или профилем.
Вариант 1
Делается это достаточно просто. В системных настройках есть параметр tree_root_id, в котором указывается корневой элемент (узел) дерева ресурсов. По-умолчанию, в нём указан 0. Что значит — выводить все ресурсы. Допустим, что у вас статьи находятся в разделе «Блог», у которого id равен 5. А контент-менеджеры находятся в группе «Content managers».
Откройте системное меню и найдите там пункт «Контроль доступа». В списке групп пользователей кликните правой кнопкой на группе «Content managers» и выберите «Редактировать группу пользователей». На вкладке «Настройка» добавьте новый параметр как указано на картинке
Теперь, чтобы добавленная настройка вступила в действие, нужно сбросить все сессии. Делается это в меню Управление > Завершить все сеансы. Теперь менеджерам в дереве ресурсов будет выводится только раздел «Блог» и его потомки.
Точно такую же настройку можно добавить и для отдельного пользователя.
Вариант 2
Указать корневой узел можно и динамически. Для этого создайте плагин для события «OnMODXInit» и добавьте соответствующее условие
<?php if ($modx->event->name == 'OnMODXInit' && $modx->context->key == 'mgr') { if ($modx->user->isMember('Content managers')) { // Этот if можно добавить в первый. Я вынес его для наглядности. $modx->setOption('tree_root_id', 5); } }
На этом всё. Спасибо за внимание.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()