Всем привет! Хоть я последнее время мало уделяю внимания 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:"Это действие запрещено!"}}
    

    Названия пакетов регистрозависимые, поэтому будьте внимательны.

    В общем, пробуйте, благодарите или ругайте.

    27 июля 2017, 11:04   504     0

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

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

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