Запрет действий с пакетами MODX
Всем привет! Хоть я последнее время мало уделяю внимания MODX, но уж очень мне понравилась идея Владимира. И я решил добавить такой функционал в свой пакет adminTools. Реализация достаточно простая — без таблиц, интерфейсов и т.п. Только системная настройка, в которой определяются права.
Для пакетов в MODX определены следующие действия:
- Установка (install)
- Переустановка (reinstall)
- Деинсталляция (uninstall)
- Обновление (update)
- Удаление (remove)
- Проверить обновление (checkupdate)
- Посмотреть детали (details)
Любое из этих действий можно запретить. Также можно запретить сразу все действия (об этом ниже). Для управления этим функционалом добавлена системная настройка admintools_package_actions
. В ней нужно указать права для пакетов в формате javascript объекта:
{package1:{action1:false, action2:"Сообщение для action2.", message:"Сообщение по-умолчанию."}, package2:{...}}
Чтобы запретить действие, можно указать или false
или сообщение. В первом случае сообщение будет искаться в ключе message
. Этот ключ пригодится, если нужно вывести одно сообщение для всех действий. Таким образом, для каждого действия можно указать своё сообщение или для всех одно общее или вперемешку — для некоторых определить, для остальных общее.
Примеры
1. Запретить удаление пакета
{Ace:{remove:"Удаление запрещено!"}} // или так {Ace:{remove:false}} // Выведется дефолтное сообщение "Доступ запрещён!". // или так {Ace:{remove:false, message:"Действие запрещено!"}}
2. Запретить установку определённого пакета
{Ace:{install:"Данный пакет устанавливать запрещено по причине несовместимости!"}}
3. Запретить все действия для пакета. Для этого добавлен специальный ключ all.
{Ace:{all:"Все действия с этим пакетом запрещены!"}}
4. Разрешить только некоторые действия для пакета.
{Ace:{details:true, all:"Это действие запрещено!"}} // эквивалентно {Ace:{details:true, all:false, message:"Это действие запрещено!"}}
Названия пакетов регистрозависимые, поэтому будьте внимательны.
В общем, пробуйте, благодарите или ругайте.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()