Права доступа в MODX | Зона разработки
- Безопасность
- MODX
Если у вас не просто сайт-визитка, то вы обязательно столкнетесь с задачей разграничения доступа. Как правило, первое, с чем сталкиваются, это приватные страницы типа профиля пользователя. Это что касается сайта. Есть ещё задача управления этим сайтом. И тут кроме админа есть ещё контент-менеджеры, менеджеры по продажам и т.п. И все они работают через админку. Такая концепция MODX. Лично я уже давно считаю, что админка только для админа, а все интерфейсы дополнений необходимо выносить из админки. В этом есть определённые плюсы:
- Не нужно использовать устаревшую библиотеку ExtJS. Она пугает многих новичков и раздражает опытных модыксеров. Да, MODX позволяет дополнению работать без этой библиотеки. Но таких юзкейсов единицы, информации по ним крайне мало. Так что начинающий разработчик дополнений не осилит данный подход.
- Перегруженный интерфейс. Даже если отказаться от ExtJs, всё равно пользователь получит жутко перегруженный интерфейс ненужными UI объектами и огромным количеством загружаемых файлов. Плюс всё равно придется использовать API админки сайта и следовать его требованиям.
- Дополнительный уровень безопасности. Например, на сайте с установленным минишопом менеджер, ограниченный минимальными правами, может легко получить полный доступ. Конечно, пользователь с определёнными знаниями. А если вы используете свою концепцию, то можете случайно открыть дырку и скомпрометировать админку. Ведь даже опытные разработчики на этом попадались. Что уж говорить про тех, у кого есть только базовые знания web-безопасности. А если менеджер сидит на фронте, то эта проблема вас беспокоить не будет. По крайней мере, не сильно.
Тут конечно, есть и минус данного подхода — разные точки входа. В админке все дополнения находятся в одном месте. Установил пакет и знаешь где его найти.
Это удобно. А в данном случае предётся вручную их собирать где-то. Но так работают сайты на фреймворках. И их разработчики вам скажут, что это скорее плюс — даёт больше гибкости.Управление доступом
Модель безопасности в MODX строится на концепции ABAC и использует такое понятие как список контроля доступа (ACL). Сейчас мы разберёмся, что это такое и как оно работает. Для этого обратимся к документации MODX.
Принципал
В MODX принципалом выступает не сам пользователь, а группа пользователя. И чтобы права сработали, пользователя нужно добавить в эту группу. Причём, пользователь может входить в несколько групп. В MODX из коробки есть 2 группы пользователя — «(аноним)» и «Administrator». Если со второй всё понятно, то первая группа виртуальная. Она предназначена только для определения прав доступа для гостей.
Цели
В MODX доступ ограничивают для пяти объектов
- контекст,
- группа ресурсов,
- категория элементов,
- медиаисточник,
- пространство имен (namespace)
Обратите внимание, все объекты единичные, а для ресурсов используется целая группа. Да, в MODX права задаются именно группе ресурсов, а не единичному ресурсу. Т.е. по аналогии с файловой системой на папки, а не на файлы. Ровно такой же принцип используется для настройки прав доступа к элементам MODX. Права определяются не к отдельному чанку или сниппету, а для категории элементов, которая как раз группирует элементы.
Политики доступа
Политика доступа — это список разрешений, объединенных по конкретному принципу. Например, есть политика доступа «Object» для работы с объектами. Она содержит разрешения на создание, редактирование, удаление, просмотр объекта и списка объектов. Все политики доступа можно найти в интерфейсе контроля доступа на вкладке «Политики доступа». Там же можно создать свою политику или скопировать уже существующую и выставить в ней нужные права.Полномочия
Ну и следующий важный элемент системы безопасности — полномочия. Это минимальный уровень, который разрешает пользоваться указанными политиками. В MODX это синоним роли. И тут есть определенная особенность, ломающая мозг. Чем ниже число, тем выше уровень полномочий. Просто запомните этот факт. Он неинтуитивен.
В MODX из коробки есть 2 роли: 0 с псевдонимом «Super User» и 9999 с псевдонимом «Member». Так вот, 0 — это максимальные полномочия. 9999 — минимальные. Создавать роли можно в этих пределах.
Ещё запомните, когда говорят про число, то используют определение «ранг». Когда про псевдоним, то «роль». Таким образом, роль «Super User» имеет ранг 0, а роль «Member» — ранг 9999. Просто в разных местах используют оба понятия, но значат они одно и тоже.
Списки контроля доступа ACL
Теперь сформулируем понятие ACL. Это набор прав, указанных в политике доступа, прикреплённых к определённому объекту (контексту, группе ресурсов, категории) для определённой группы пользователей с указанной ролью. Как видите, списки контроля включают все вышеописанные понятия.
Таким образом, чтобы ограничить доступ пользователя к определённому ресурсу, нужно создать группу ресурсов, добавить в неё нужный ресурс, создать группу пользователей, добавить в неё пользователя и этой группе указать политику доступа к группе ресурсов с нужным уровнем полномочий. Это и называется ACL.
Важно!
Необходимо знать одну особенность MODX. Он кэширует все права пользователя в сессию. Поэтому, когда вы добавляете пользователя в группу, исключаете его из группы, меняете права самой группы, то должны помнить, что после этого необходимо разлогинить всех пользователей, чтобы эти изменения применились.
Ещё важно отметить, что в MODX приоритет доступа allow/deny
. Т.е. если для объекта не указан ACL, то доступ разрешён. Или вернее, права для него не проверяются. Например, из коробки в MODX для гостей контекста web задана политика доступа «Load Only» с ролью «Member». Соответственно, если вы создадите пользователя и залогините его на сайте, то должны получить ошибку 404. Причина — раз для контекста уже настроен контроль доступа, и текущий пользователь не прошёл проверку (ведь доступ разрешен только для гостей), то соответственно пользователю в доступе отказано. Поэтому вам придётся создать ещё один ACL для группы пользователя, предварительно её создав и добавив туда этого пользователя. Группе нужно дать доступ к контексту web
и указать политику доступа «Load Only». Так как на сайте проверяется только эта политика для контекста.
Ну или второй вариант, удалить ACL для гостей. Тогда проверок не будет и пользователь получит доступ к странице. Именно такая логика задумана, что и подтверждается документацией. Но по факту это не так. Ибо есть баг, из-за которого проверка доступа к контексту не работает.
Системные настройки
Моделью безопасности можно управлять через настройки. Для этого есть специальный раздел «Авторизация и безопасность». И самое первое, на что мы обратим внимание — настройка principal_targets
. В ней указаны объекты, для которых нужно проверять права. По-умолчанию, там перечислены все 5 — «modAccessContext,modAccessResourceGroup,modAccessCategory,sources.modAccessMediaSource,modAccessNamespace». Но это ещё не всё. Есть ещё 3 настройки, которые управляют доступом к отдельным объектам:
access_category_enabled
— Проверять доступ к категориям,access_context_enabled
— Проверять доступ к контекстам,access_resource_group_enabled
— Проверять доступ к группам ресурсов.
Почему их всего 3, а не 5? Не спрашивайте.
Кэширование
В MODX очень многие вещи кэшируются. И права не исключение. Как я сказал выше, ACL для групп пользователя кэшируются в сессии пользователя. И сбросить этот кэш можно только заставив пользователя перелогиниться. ACL для групп ресурсов (modAccessResourceGroup) хранятся в кэше ресурса в ключике «policyCache». Права доступа к контекстам (modAccessContext) хранятся в кэше контекстов в ключике «policies». Оба кэша можно сбросить через меню «Очистить кэш».
Кэши остальных объектов я не нашёл. Вполне возможно, что их решили не кэшировать по причине того, что они используются только в админке, а значит нет проблем трёх секунд.
Заключение
Статья получилась большая и без картинок. В следующий раз мы поговорим о правах доступа в формате видео. Для наглядности я планирую снять целую серию с подробным разбором каждого случая.
1 2302Настройка прав доступа для контент-менеджера в MODX Revolution
Всем привет! Сегодня мы рассмотрим настройку и разграничение прав в MODx Revolution. Создадим нового пользователя manager, ограничим его как следует и назначим соответствующие права на редактирование ресурсов и файлов.
Смотреть урок на YouTube
1. Создание нового пользователя и назначение прав
- Переходим в меню: «Настройки» > «Контроль доступа»
- Переходим на вкладку «Политики доступа»
- Копируем «Content Editor», редактируем и называем новую политику «Менеджер»
- Устанавливаем разрешения:
- Установить галку «Изменять права доступа (chmod) к каталогам»
- Установить галку «Создавать каталоги в файловой системе»
- Установить галку «Переименовывать каталоги в файловой системе»
- Установить галку «Создавать файлы»
- Установить галку «Смотреть список файлов в определенном каталоге»
- Установить галку «Использовать диспетчер файлов»
- Установить галку «Удалять файлы»
- Установить галку «Видеть дерево файлов в левой навигационной панели»
- Установить галку «Изменять файлы»
- Установить галку «Загружать файлы в папку»
- Установить галку «Просматривать содержимое файла»
- Установить галку «Использовать пакеты в системе управления пакетами»
- Установить галку «Использовать страницу «Поиск»»
- Сохранить.
- Переходим в меню: «Настройки» > «Контроль доступа»
- Переходим на вкладку: «Группы пользователей & Пользователи»
- Создаем новую группу пользователей и задаем имя «Контент менеджеры»
- Устанавливаем в окне новой группы пользователей контексты web, mgr
- Политика бэкэнда в окне новой группы: «Менеджер» + Сохранить
- Новая группа пользователей «Контент менеджеры» > Редактировать
- Переходим на вкладку: «Права доступа»
- На вкладке «Доступ к контекстам» редактируем mgr, web по очереди
- mgr, web > редактировать, устанавливаем «Политика доступа» как «Менеджер» + Сохранить
- Переходим в меню «Управление» > «Пользователи» и создаем нового пользователя по кнопке «Новый пользователь»
- Имя manager, указываем E-mail менеджера, устанавливам радиобаттон ниже как «Я укажу пароль сам» и задаем пароль
- Переходим на вкладку «Права доступа» > «Добавить пользователя в группу»
- Группа пользователей: «Контент Менеджеры», Роль: «Super User»
- Установить чекбокс «Активный» + Сохранить
- Переходим в меню «Управление» > «Перезагрузить права доступа»
2.
Ограничения на просмотр файловой системы2.1. Добавляем источник файлов
- Переходим в меню: «Медиа» > «Источники файлов»
- Скопируем «Filesystem»
- Отредактируем скопированный источник
- Название: «Images»; basePath, baseUrl: «assets/images/»
- Переходим в меню: «Настройки» > «Контроль доступа»
- Отредактируем группу пользователей «Контент менеджеры» правой кнопкой мыши
- Переходим на вкладку: «Права доступа» > «Доступ к источнику файлов» и добавим новый источник по кнопке «Добавить источник файлов»
- Источник: Images, Минимальная роль: Member — 9999, Политика доступа: Media Source Admin
- Сохранить; Меню: «Управление» > «Очистить кэш»; Меню: «Управление» > «Перезагрузить права доступа»
2.2. Удаляем источник «Filesystem» для manager
- Переходим в меню: «Медиа» > «Источники файлов»
- Filesystem > Редактировать
- Переходим на вкладку: «Права доступа», нажимаем «Добавить группу пользователей»
- Группа пользователей: «Administrator», Минимальная роль: «Super User — 0», Политика: «Media Source Admin» + Сохранить
- Переходим в меню: «Медиа» > «Источники файлов»
- Images > Редактировать
- Переходим на вкладку: «Права доступа», нажимаем «Добавить группу пользователей»
- Группа пользователей: «Administrator», Минимальная роль: «Super User — 0», Политика: «Media Source Admin» + Сохранить
3.
Управление группами ресурсов- Переходим в меню: «Содержимое» > «Группы ресурсов»
- Создать группу ресурсов
- Имя: «Администратор», Контексты: «web,mgr»
- Установить галку «Автоматически дать доступ группе Administrator»
- Добавить элементы в новую группу «Администратор», которые мы хотим скрыть от менеджера
- Сохранить; Меню: «Управление» > «Очистить кэш»; Меню: «Управление» > «Перезагрузить права доступа»
Премиум уроки от WebDesign Master
Создание сайта от А до Я. Комплексный курс
Создание современного интернет-магазина от А до Я
Я — фрилансер! Базовый курс для начинающих
Другие уроки по теме «CMS»
- Ajax фильтр на MODx Revolution
- Посадка типовой секции Landing Page на MODx с использованием MIGX (добавляемые поля)
- MODX Revolution — Базовый урок
- Как создать шаблон для WordPress. Грамотная посадка верстки на WordPress (Right Way)
- Быстрое создание красивых сайтов на WordPress. Layers Style Kit на реальном примере
apache — Кэш ModX: файлы записываются с неправильными разрешениями
спросил
Изменено 10 лет, 1 месяц назад
Просмотрено 1к раз
Название на самом деле не суммирует все это…
Я недавно установил ModX Revolution 2.2.4 на сервер Apache, и у меня возникли проблемы с папкой кеша. Иногда мне приходится вручную очищать папку кеша через ftp, но любые записанные туда файлы принадлежат Apache, и моя учетная запись не может их удалить. Я попытался добавить «new_file_permissions» и «new_folder_permissions» в системные настройки, но никаких изменений. Файлы кеша всегда принадлежат Apache, и у меня нет доступа по ftp.
Кроме того, такие файлы, как .htaccess и вообще все, что я загружаю (css и т. д.), рассматриваются как нередактируемые для modx, если только я не изменю их вручную на 777 через ftp. Я не могу изменить владельца и группу.
Серверный техник не может понять. Этот вопрос уже поднимался на форумах modx, но на него так и не ответили.
- apache
- права доступа к файлам
- modx
- modx-revolution
- права доступа к каталогам
Очевидно, это проблема сервера.
У меня была эта проблема (правда, с сервером IIS), и хосту нужно было изменить некоторые настройки.
Особенно, если MODX работает на разных хостах.
1
Это то, как это должно работать, у вашей учетной записи FTP нет разрешения на запись файлов, написанных apache, ваш ftp может быть членом группы, но не имеет разрешения на запись.
[необходимо удалить]. Я подозреваю, что это сделано в целях безопасности.Ваши разрешения new_file_permissions, new_folder_permissions используются файловым менеджером modx.
Итак, вы можете сделать несколько вещей:
Запустить modx под fastcgi, таким образом, пользователь, пишущий файлы, должен быть тем же пользователем, что и пользователь ftp.
ИЛИ
напишите небольшой скрипт [вы даже можете вставить его во фрагмент], который удалит файлы кэша для вас. [поскольку он будет работать как пользователь apache, это не должно быть проблемой.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
MODX Версия 2.
0.0-rc-1 — SiteDash, возьмите под контроль свои сайты MODXMODX 2.0.0-rc-1 был выпущен 12 лет назад 22 марта 2010 г.
Загрузки Список изменений
- Подготовлено для версии rc1
- Исправлено копирование сжатия CSS в build.xml
- Исправлена ошибка, из-за которой функции regClient*() снова работали с кэшируемыми скриптами
- Переместите источник элемента и включите файлы кеша за пределы каталогов кеша контекста, поскольку их следует очищать только при обновлении элементов
- Удалить eval() из modScript и снова включить удаленную отладку экземпляров modScript с помощью функции кэширования, включаемой в дополнение к исходному кешу
- [#MODX-1759] Убедитесь, что журнал менеджера срабатывает при удалении верхнего меню
- [#MODX-1772] Убедитесь, что массив идентификаторов передается в события подключаемого модуля OnBeforeEmptyTrash и OnEmptyTrash
- Добавлен экран приветствия, отображаемый при первом входе в менеджер
- [#MODX-1738] Исправлена проблема со значением по умолчанию на радио-телевизорах
- [#MODX-1741] Исправление несовместимой ширины для параметров радио, заставляя их перечисляться вертикально, а не горизонтально
- [#MODX-1769] Поиск сетки Lexicon теперь ищет имя и значение
- [#MODX-877] Обновлен сбивающий с толку текст на вкладке прав доступа к телевизору .
- [#MODX-1766] Исправлена проблема с PHP_SAPI для правильной работы путем установки значения по умолчанию при настройке для предоставления значения http_host по умолчанию для правильного заполнения site_url
- Исправлена ошибка в программе установки, из-за которой в предыдущих конфигурациях не учитывался путь к процессорам.
- [#MODX-1759] Исправлены ошибки, из-за которых в журнале менеджера не сохранялись правильные значения PK или отображались отсутствующие ключи в сетке
- [#MODX-1766] Исправлен файл config.inc.tpl для работы с не-httpd SAPI .
- Добавлен заголовок/информация для страницы Отчеты->Информация о системе->База данных. Это также исправило проблему со стилем CSS.
- Исправлены стили CSS для недавних документов. Отступ 5px был удален.
- Исправлены ошибки с классом modMail и атрибутами по умолчанию, из-за которых атрибуты не сохранялись после reset()
- Удаление устаревшего кода обработчика RTE
- [#MODX-1762] Увеличен размер окна загрузки файлов для переводов
- Не отображать ненужные вкладки на панели Resource TV, если нет TV, назначенных шаблону для этого ресурса
- Сортировка переменных шаблона на странице редактирования шаблона по имени
- Убедитесь, что свойства элемента, содержащие HTML, отображают разметку вместо отображения HTML в режиме редактирования в mgr ui
- [#MODX-1669] Переработан загрузчик файлов в дереве каталогов, чтобы он был более совместим с разными браузерами
- Очищен и улучшен вход в систему CSS
- Стандартизация и добавление констант класса в классы modRest*
- Обновлены данные об авторских правах в словарных записях
- Исправления в build. xml, команде сжатия css
- Обновлены даты авторских прав
- [#MODX-1750] Множество процедурных и справочных исправлений в пользовательском интерфейсе сетки Lexicon
- Убрано представление записей modAction в mgr
- Добавлено исправление для дерева refreshParentNode; расширенный modUserGroup::getUsersIn()
- В сетку свойств элемента добавлена маска сохранения, которая срабатывает при сохранении набора свойств
- Удалена устаревшая ссылка на файл в шаблоне входа
- Добавлены системные настройки для переключения каналов новостей/безопасности на панель приветствия
- Добавлен системный параметр для включения автоматической проверки обновлений пакетов в управлении пакетами
- [#MODX-1751] Исправлена ошибочная ссылка в описании настройки дружественного псевдонима
- [#MODX-1752] Исправлена ошибка, из-за которой элементы верхнего меню без дочерних элементов не отображались, даже если у них было действие
- Некоторые настройки CSS для страницы входа
- Обновлен до xPDO 2. 0.0 r419 для исправления ошибки xPDOVehicle
- Исправлена ошибка с кнопкой Download Output в MODx.Console
- Убедитесь, что электронная почта для активации при забытом входе имеет формат HTML .
- Добавлена ссылка и форма «Забыли логин» для менеджера, отправляет активационное письмо на указанный адрес электронной почты, если пользователь забыл логин/пароль
- Исправлен алгоритм сортировки SQL для версий пакетов, добавлены вспомогательные методы для сравнения версий пакетов
- Добавлен $resource к свойствам, передаваемым в OnDocFormDelete в обработчике ресурсов/удаления
- Обновлено до xPDO 2.0.0 r417 ([#XPDO-40] Исправлена работа getCount при передаче критерия с установленным псевдонимом класса)
- Усовершенствованный фильтр вывода стриптегов для получения параметра разрешенных тегов
- Убедитесь, что $paths и $options переданы в OnCacheUpdate
- Добавлены ссылки на сжатие/объединение для входа в систему и браузера tpls
- Исправлены скрипты build. local.xml и build.xml
- Добавлен системный параметр compress_css для сжатого CSS для выпусков, перенесенный из modx-theme.css в шаблоны css/dir. Не используйте сжатие_css без предварительного запуска задачи Ant _build/build.local.xml.
- Очищены оставшиеся определения функций PHP4, неэкранированный код SQL, добавлены правильные методы доступа для частных переменных, другой старый код
- Исправлена ошибка с modLexiconLanguage::clearCache
- [#MODX-1738] Исправлена ошибка, из-за которой правила FC TV не работали должным образом в обновлении ресурсов 9.0020
- Исправлена ошибка, из-за которой свойства события плагина объединялись, если с событием было связано более одного плагина
- Добавлена маска загрузки на панели редактирования для предотвращения случайного редактирования до загрузки данных
- Добавлена проверка работоспособности для обработки события OnRichTextBrowserInit
- Добавлено исправление для загрузки RTE на панели ресурсов, должно исправить большинство ошибок сохранения RTE
- Добавлена возможность складывания панели документов
- Добавлен системный параметр concat_js, который объединит все распространенные файлы JS в один файл
- Скорректирован lang. js.php для правильного использования заголовка ETag для кэширования lang js
- Добавлено правило css для предотвращения отображения скрытых фреймов
- Исправлена ошибка, из-за которой группы ресурсов нельзя было редактировать при создании ресурса .
- Добавлена проверка работоспособности для пакетов с отсутствующим провайдером
- Добавлен столбец «Доступные обновления» в сетку пакетов, автоматически проверяет наличие обновлений у поставщика
- [#MODX-1732] В языковую сетку добавлена возможность дублирования языка
- [#MODX-1741] Исправлена возможная ошибка с метками радио/телевидения
- [#MODX-1593] Исправлена ошибка, из-за которой пользователь не мог быть добавлен без роли в дереве групп пользователей
- [#MODX-1735] Правильно кодировать URL-теги ссылок, сохраняя при этом знаки = и & в строке запроса
- [#MODX-1736] Исправлена ошибка с назначением телевизоров группам ресурсов
- [#MODX-1740] Добавлен обходной путь для кода SQL для правильного скрытия телевизоров с правилами FC
- [#MODX-1738] Исправлена ошибка с радиогруппами и установка правила FC по умолчанию для ТВ
- Исправлены некоторые проблемы с заголовками, обработка типа содержимого _FILES
- [#MODX-1733] Исправлена ошибка, приводившая к удалению тегов из обработки коннектора .
- Гарантировано, что изменение имени файла статического ресурса вызывает грязный статус
- Убедитесь, что при выборе значения по умолчанию активируется грязный статус для панели ресурсов
- Исправлена возможная ошибка растяжения по ширине на панели ТВ в представлении редактирования ресурсов
- [#MODX-1543] Добавлено «Переименовать категорию» в узлы категорий в подузлах элементов в дереве элементов
- [#MODX-933] Теперь можно перетаскивать элементы в категории в дереве элементов, чтобы назначить их категориям 9.0020
- [#MODX-1729] Исправлено неправильное имя фильтра, чтобы оно больше соответствовало функции
- [#MODX-1727] Добавлен отсутствующий флажок «Очистить кеш» на панели производных ресурсов
- [#MODX-1724] Исправлена ошибка, из-за которой выходные рендеры на панели ТВ не приводили к срабатыванию грязного статуса панели
- [#MODX-1730] Исправлена ошибка с $scriptProperties и процессором входа в систему .
- Некоторые исправления для потока MODExt и ссылки на ID
- Изменены все ссылки GPC в процессорах на $scriptProperties, который загружается в точках входа в процессоры с переменными GPC, передавая обработку ввода на коннектор
- [#MODX-1711] Исправлена ошибка с выходным фильтром полосы
- Добавлен выходной фильтр с многоточием
- Исправлены различные вызовы событий в реализации JS для правильной модульности компонентов modext
- Добавлены события в сетку групп пользователей для обеспечения грязной стрельбы
- Добавлен MODx.FormPanel::markDirty
- Добавлены настройки CSS для поддержки Opera 10.5
- Исправлена ошибка с сеткой пользователей, если вкладка прав доступа удалена
- Исправлены устаревшие определения методов в классах modConnector
- Исправлен текст в настройках языка для более точного отображения функции
- Добавлен фильтр области в сетку настроек
- [#MODX-1721] Отключено ненужное разбиение по страницам в таблице системных событий
- [#MODX-1726] Добавлена проверка работоспособности, чтобы убедиться, что тип входа телевизора установлен правильно
- Исправлена ошибка с кнопками действий и методом продолжения пребывания
- Добавлен пользовательский интерфейс для управления полем веб-сайта в modUserProfile
- Добавлено поле веб-сайта в modUserProfile
- Удалено ненужное и проблемное выпадающее меню редактора на экране редактирования чанка
- Ускорено перетаскивание переупорядочивания в дереве, теперь только кадрирование перемещенных узлов вместо обновления
- Добавлен метод modRequest::getParameters() для получения различных переменных GPC или массивов переменных; автоматически удаляет параметры MODx GET по мере необходимости
- modRequest::__construct() теперь создает ссылки на все переменные GPC в modRequest::$parameters
- ModX::makeUrl()/modContext::makeUrl() изменен для приема параметров строки запроса в виде массива или строки
- Добавлен статический метод modX::toQueryString() для преобразования ассоциативного массива в допустимую строку запроса
- [#MODX-1709] Исправлена проблема с кодировкой параметра кнопки действия .
- [#MODX-1554] Предотвращена загрузка файлов в сами файлы в дереве каталогов
- [#MODX-1700] Исправлена проблема с настройкой ссылок на текст в словаре .
- Убедитесь, что теги в содержимом статического ресурса проанализированы, прежде чем пытаться загрузить исходный путь
- Исправлено обновление статических/веб-ссылок js
- Удалена ненужная и избыточная проверка префикса таблицы позже в настройке
- Исправлены свойства css/js на вкладке TV, позволяющие RTE автоматически определять высоту своих полей TD
- Исправлена отсутствующая ссылка на разрешения для контроллеров ресурсов
- Добавлен OnHandleRequest в modManagerRequest::handleRequest
- Правильно скрывает элементы пользовательского интерфейса для кнопок/страниц ресурса, если у пользователя нет разрешений
- Рефакторинг modResource::cleanAlias() для включения различных параметров, включая встроенные и пользовательские возможности транслитерации
- [#MODX-717] Иностранные символы (данные UTF8) без необходимости удалены из псевдонима
- Скрыть элементы верхнего меню, если нет подменю и если верхнее меню не кликабельно
- [#MODX-1690] Исправлен текст диалогового окна подтверждения при удалении элемента, чтобы включить имя и тип элемента
- [#MODX-1707] Добавлены системные настройки mail_charset и mail_encoding для управления набором символов и кодировкой в электронных письмах
- [#MODX-1706] Убедитесь, что в текстовых полях и полях qtip в деревьях ресурсов/элементов удалены все теги
- [#MODX-1699] Исправлена ошибка в Quick Edit TV, из-за которой заголовок стирался и заменялся именем
- [#MODX-1704] Исправлена ошибочная инструкция if в кнопке очистки, которая скрывалась на панели журнала ошибок
- [#MODX-1675] Добавлено исправление для путей Windows на панели «Редактировать файл»
- [#MODX-1681] Добавлены проверки на наличие проблем с импортом лексики в браузерах на основе Webkit
- Очистки для ширины входа ТВ
- Удаление ядра RTE; слишком много работы, может вернуться в более позднюю версию
- [#MODX-1697] Добавлена возможность редактирования изображений и ссылок в RTE .
- Добавлен более надежный API MODx.rte.Selection
- Добавлены отсутствующие изменения в modActions, необходимые для загрузки записей словаря для RTE
- [#MODX-1662] Исправлено несоответствие в метке поля виджета меню
- [#MODX-1687] Исправлены ошибки в браузере пакетов шаблонов из-за изменений в modx.view.js
- Панель ресурсов сделана панелью с возможностью загрузки файлов для плагинов
- [#MODX-1357] Добавлен системный параметр richtext_default 9.0020
- [#MODX-1685] Добавлен MODxEditor, базовый RTE на основе Ext, который будет RTE по умолчанию для Revolution .
- [#MODX-1674] MODx.Browser стабилизирован для работы с ядром RTE .
- — Добавлены отсутствующие классы реестра.db.modDbRegister* для настройки .
- [#MODX-1642] Выход из системы не разблокирует ресурсы: добавлен modUser::removeLocks() и изменен modUser::endSession() для вызова этого метода
- Добавлено событие OnInitCulture в базовые транспортные данные.
- [#MODX-1672] Рефакторинг процессоров сортировки/соединения в настройках для повышения стабильности
- Обновлен xPDO до r414 для улучшения xPDOManager
- modInstall::writeConfig() использует new_file_permissions, если указано, или настройки umask() по умолчанию
- Удалены лишние вызовы xPDO/modX::setDebug() и xPDO/modX::setLogLevel() в modInstall
- modInstall::getConnection() теперь использует utf8_general_ci для кодировки/сопоставления по умолчанию
- [#MODX-1691] Настройка окон быстрого создания/обновления для использования свойства привязки, а не ширины для настройки изменения размера
- Добавлена настройка «cultureKey», позволяющая упростить языковой перевод в contexts/fe/components
- Исправлены стили для окна MODx.Browser
- Добавлен параметр ‘relativeUrl’ в данные файла MODx.Browser
- [#MODX-1674] Исправления и стабилизация в MODx.Browser, особенно при использовании RTE
- Изменение редактора по умолчанию с TinyMCE на пустое значение
- Исправлена ошибка в настройке, из-за которой параметр на месте принудительно устанавливался на 1
- Очищено большинство процессоров, исправлены неправильные ссылки на разрешения, стандартизирован код
- Исправлена панель приветствия, чтобы отображались только панели с разрешением на просмотр
- Исправлена страница просмотра журнала ошибок для ограничения просмотра и очистки по разрешению
- Добавлена описательная информация в сетку ролей
- Множество исправлений разрешений, других исправлений и проверок работоспособности процессоров/контроллеров Element
- Добавлены разрешения на набор свойств
- Очистка контроллеров ресурсов, процессоров, оптимизация проверок разрешений безопасности
- Исправлены различные ошибки со страницей поиска
- Исправлена ошибка с добавлением политик, препятствовавших частичному совпадению регулярных выражений в имени
- Исправлены ошибки при добавлении новых политик или разрешений, которые отображали ранее добавленные разрешения/политики в форме
- Правильно защищенная и реорганизованная сетка недавно отредактированных ресурсов
- [#MODX-1670] Скорректированы разрешения, чтобы разрешить пользователю с ограниченным доступом редактировать профиль
- [#MODX-1667] Удалено ненужное правило CSS непрозрачности в меню
- Исправлена ошибка, из-за которой страница не перезагружалась при входе в систему в определенных ситуациях
- Увеличьте длину div rightlogin для поддержки более длинных переводов
- [#MODX-1653] Исправлены проблемы со связанными объектами, удаление агрегатов и другие ошибки упаковки. Представлен xPDOTransport::UNINSTALL_OBJECT, значение которого по умолчанию равно true. Когда он выключен, он предотвратит удаление объекта.
- Обновлен xPDO до r413
- [#MODX-761] Исправлена проблема с языком в настройках, теперь он устанавливается правильно и загружает правильный словарь для экрана входа в систему
- Убедитесь, что окно консоли отображается поверх других окон
- [#MODX-1663] Добавлен файл MODx.msg.status, который показывает исчезающее сообщение о состоянии при успешном сохранении. Это также решает проблему обратной связи с пользователями.
- Удалено ненужное поле из сетки недавно отредактированных ресурсов на экране приветствия
- [#MODX-1660], [#MODX-1037] Экран входа в систему изменен на HTML/CSS, базовая обработка форм позволяет браузерам сохранять пароль в своих системах управления паролями
- Обновленный пользовательский интерфейс в новых параметрах настройки, очищенный текст, упрощенные представленные параметры
- [#MODX-18] Разрешить редактирование MODX_CONFIG_KEY в окне приветствия установки
- [#MODX-18] Запрашивать у пользователя MODX_CORE_PATH, если он не найден в начале установки
- [#MODX-760], [#MODX-1080], [#MODX-1528] Добавлен параметр настройки для установки разрешений new_file_permissions и new_folder_permissions в окне приветствия
- [#MODX-760], [#MODX-1528] Удалены системные настройки new_file_permissions и new_folder_permissions из программы установки
- [#MODX-760], [#MODX-1528] Обновлен xPDO 2. 0 до версии 407: новые права доступа к файлам и папкам определяются с помощью umask()
- [#MODX-878] Кнопки Stay теперь зависят от действия, выполняемого через состояние Ext, а не через PHP .
- Повторить логический порядок modPackageBuilder::buildLexicon, чтобы убедиться, что языки упакованы перед темами
- [#MODX-1647] Добавлена спецификация ширины, чтобы принудительно установить ширину экрана, чтобы предотвратить прокрутку телевизоров RTE
- Убрано правило настройки формы tvTitle путем переноса кода с JS на PHP
- Исправлена проблема с z-индексом для Windows из-за исправления IE .
- [#MODX-732] Добавлен принудительный z-индекс в верхнее меню для IE, исправлен раздел правого входа на верхней панели для IE 9.0020
- [#MODX-1641] Оптимизирован и очищен код, связанный с видимостью ТВ настройки формы и значениями по умолчанию
- [#MODX-1658] Исправлена ошибка, из-за которой размещение пункта меню в подменю помещало его на верхний уровень
- [#MODX-1624] Включено изменение текстового поля в пунктах меню
- [#MODX-1656], [#MODX-1654] Исправлен пробел CSS в сводке установки в программе установки
- [#MODX-1655] Исправлены жестко заданные строки лексикона в настройке .
- [#MODX-1621] Удалите ненужные элементы контекстного меню из элементов в дереве ресурсов группы ресурсов 9.0020
- [#MODX-1627] Исправлено неправильное меню в ресурсах дерева группы ресурсов при новом перетаскивании
- [#MODX-1599] Добавлен системный параметр manager_date_format для настройки форматов даты для менеджера
- [#MODX-1651] Увеличение ширины кнопок панели навигации настройки для размещения переводов
- [#MODX-1649] Исправлена ошибка, из-за которой функция быстрого создания не учитывала параметр default_template .
- [#MODX-1650] Исправлена ошибка с указанием языка в настройках для правильной установки файлов cookie для компьютеров Windows и правильной установки исходного языка
- [#MODX-1626] Исправлена ошибка, из-за которой в верхних меню не было действий
- [#MODX-1494] Исправлена ошибка, из-за которой у некоторых настроек не было описаний, и убраны устаревшие настройки
- [#MODX-1645] Исправлен неправильный ключ словаря для settings_site_start_err
- [#MODX-1646] Исправлена ошибка, из-за которой кнопки загрузки оставались серыми, если отображалось сообщение об ошибке .
- [#MODX-1644] Почтовые настройки SMTP добавлены в системные настройки по умолчанию, чтобы разрешить глобальное использование SMTP для всех функций modMail
- [#MODX-1606] Исправлена ошибка в классе modRestCurlClient из-за закодированного амперсанда .
- [#MODX-197] Рефакторинг JS кнопок действий, добавлены события actionNew, actionContinue и actionClose в объекты MODx.FormPanel, гарантируется сохранение parent/context_key за счет добавления других ресурсов
- Добавлена пара проверок работоспособности в modRestCurlClient
- Добавлен JS для отключения кнопки установки при нажатии в настройках для предотвращения двойного щелчка
- controllers/resources/create: рефакторинг наследования шаблонов, который должен выполняться перед вызовом любого контроллера-делегата.
- процессоров/ресурсов/создать: вызов события OnBeforeDocFormSave перемещен до тех пор, пока переменные POST не будут применены к объекту $resource.
- процессоров/ресурсов/создать: рефакторинг общего кода, который будет выполняться перед вызовом любого процессора-делегата.
- процессоров/ресурсов/создать: рефакторинг для учета разрешений add_children и new_document_in_root.
- В тему ресурса добавлены различные словари access_denied.
- Добавлено разрешение new_document_in_root для управления доступом к созданию ресурсов на корневом уровне.
- Обновлено до версии xPDO 2.0 406.
- [#MODX-1606] Добавлены проверки работоспособности и стандартизация идентификаторов для узлов DOM для браузера пакетов .
- Исправлена возможная ошибка с та-переключателем div на панели ресурсов
- [#MODX-1628] Исправлено правило FC tvDefault путем установки php-side
- [#MODX-1636] Добавлена возможность назначать роль пользователю при добавлении его в группу пользователей из дерева групп пользователей
- [#MODX-1634] Исправлена ошибка с обработчиком ресурсов/ресурсных групп/гетлистов, из-за которой группы ресурсов не отображались в новых панелях ресурсов
- [#MODX-1639] Исправлена ошибка, из-за которой JS панели ресурсов не проверял наличие возможно скрытой сетки разрешений доступа
- Исправлена ошибка, из-за которой modUser::removeSessionContext() вызывал modUser::endSession(), если не осталось контекстов
- Исправлена ошибка, из-за которой modUser::endSession() уничтожал все данные SESSION и файл cookie сеанса.
- Исправлена ошибка в Плагин -> вкладка Системные события, вызванная неверным вызовом функции в процессоре getlist
- Исправлены проблемы с различными устаревшими функциями для повышения совместимости с Evo и предотвращения проблем с производительностью:
- * modX::getDocuments() и modX::getDocument()
- * modX::getAllChildren()
- * modX::getActiveChildren()
- * modX::getDocumentChildren()
- * modX::getDocumentChildrenTVars()
- * modX::getParent()
- * modX::getPageInfo()
- * modX::getUserInfo()
- Исправлено объявление modX::__construct(), чтобы правильно указать его как общедоступный метод; добавлены комментарии phpdoc.
- Исправлено объявление modX::sanitize() для правильного указания его как статического метода.
- Обновлен до версии xPDO 2.0 405
- [#MODX-1614] Исправлена ошибка, из-за которой кешированные страницы переходили на неавторизованную_страницу вместо ошибочной_страницы, когда у пользователя нет разрешения на загрузку
- [#MODX-411] Установите системные настройки: emailsender на адрес электронной почты администратора во время установки
- [#MODX-1556] Показать класс и идентификатор для удаленных ресурсов или элементов в журнале действий диспетчера
- [#MODX-1552] Создать новый элемент Здесь показаны корневые элементы, но не элементы категорий
- [#MODX-1625] Исправлены ошибки с деревом меню, препятствующие созданию дочерних узлов новых элементов, обновленного меню и значков действий
- Добавлена превентивная функция, обеспечивающая однократную загрузку пакетов в браузере пакетов
- [#MODX-1623] Исправлена ошибка установки пакета: попытка сохранить файлы завершалась с ошибкой .
- Обновлен до версии xPDO 2.0 404
- Обновления установки больше не сохраняют существующие данные/файлы при установке
- Исправлена проблема с попыткой установки записать файлы коннектора, несмотря на то, что файлы уже на месте
- Обновлен до версии xPDO 2.0 403
- Исправлена ошибка, из-за которой свойства плагина не вводились в вызов события плагина .
- [#MODX-1617] Исправлена ошибка с правилом настройки формы tvDefaultValue .
- [#MODX-1619] Добавлена проверка работоспособности для проверки ограничения modActionDom
- [#MODX-1620] Исправлены отсутствующие или неправильные словарные записи в пользовательском интерфейсе .
- [#MODX-1612] Исправлена ошибка, из-за которой кнопка «Создать меню» не работала
- [#MODX-1616] Переименовано «поле» в «имя» в правилах настройки форм Windows
- Удалены все несущественные JS из пунктов верхнего меню
- Добавлена дополнительная проверка и протоколирование ошибок для параметра processing_path в modX::executeProcessor().
- Добавлено отсутствующее разрешение view_sysinfo в политику администратора по умолчанию
- [#MODX-1595] Исправлена ошибка скрытия элементов верхнего меню с разрешениями
- [#MODX-1596] Исправлена ошибка, связанная с созданием нового пункта верхнего меню
- Исправлены проблемы, связанные с панелями групп пользователей и редактированием анонимных групп пользователей
- Исправлена ошибка в средстве просмотра шаблонов для браузера пакетов, которая неправильно разбивалась на страницы
- Добавлен modRestServer для обработки общих запросов REST
- Включить удаленную сортировку и сортировку по идентификатору в сетке пользователей
- Исправлено и расширено поле поиска в сетке пользователей
- Исправлена ошибка с дублированием контекста, при котором дублировался только первый уровень
- Обновлен до версии xPDO 2.0 396
- Исправлена ошибка, из-за которой информация о версии пакета не вычислялась при загрузке/сканировании
- Добавлена проверка на заблокированный статус ресурсов, теперь показывает заблокированный статус в дереве, а также кто редактирует
- [#MODX-1592] Исправлена ошибка с созданием группы пользователей путем перемещения ее в окно
- [#MODX-1590] Исправлены отсутствующие процессоры для сеток ACL
- [#MODX-1526] Добавлены разрешения resource_tree, element_tree, file_tree, ограничивающие отрисовку/просмотр левых деревьев. Должен применяться к политикам доступа.
- [#MODX-625] Скорректирован текст предупреждающего сообщения 9 в config.inc.php с возможностью записи.0020
- [#MODX-1586] Исправлена ошибка рендеринга панели инструментов в пользовательских настройках из-за скрытого div, теперь используется hideMode: offsets
- Добавлен поиск ящика пользователя в сетке пользователей группы пользователей
- Сетка пользователей группы пользователей изменена на нелокальную сетку, теперь поддерживает нумерацию страниц и правильную проверку
- Расширенный пользовательский интерфейс для редактирования списков ACL контекста группы пользователей/группы ресурсов
- [#MODX-1525] В modMenu добавлено поле разрешений для определения разрешений политики, необходимых для просмотра элементов верхнего меню
- Исправлена ошибка в сетке «Пакеты» для правильного отображения имени провайдера .
- Добавлен класс modRestResponse, улучшена обработка ошибок для управления пакетами на основе REST
- Добавлена проверка для провайдеров, теперь проверьте, могут ли они подключиться перед добавлением или обновлением
- В Управление пакетами добавлена страница просмотра пакетов, позволяющая просматривать дополнительную информацию о пакете, просматривать ранее установленные версии и удалять старые версии пакетов
- Исправлена опечатка в сценарии настройки для изменений PM
- Добавлены поля version_major, version_minor, version_patch, release и release_index в таблицы modTransportPackage для облегчения сортировки и организации
- Исправлена ошибка в схеме транспорта
- [#MODX-1571] Исправлен xtype в настройке Automatic_alias
- [#MODX-1572] Исправлена устаревшая ошибка в службе PHPMailer .
- [#MODX-1512] Исправлена ошибка с MODx.tree.Tree::refreshNode, которая вызывала странную ошибку дублирования узла .
- Обновлен xPDO до версии 392, чтобы получить новые функции вложенных условий
- [#MODX-1515] Фиксированный выбор даты CSS
- [#MODX-923] Добавлен путь к файлу для сообщения config.inc.php configcheck на странице приветствия
- [#MODX-1579] Добавлен код для предотвращения использования недопустимых символов в имени пользователя/пароле администратора в настройках
- [#MODX-1575] Исправлена ошибка с процессором getList группы ресурсов .
- Обновлен до версии xPDO 2.0 389
- Добавлена проверка поля modContext.key; должен быть действительным идентификатором PHP без символов подчеркивания
- ModError::checkValidation() изменен для вызова modError::addField() для каждого сообщения проверки
- [#MODX-1562] Очищена сетка расписания сайта для правильной загрузки baseParams во время обновления и настройки нумерации страниц
- Очищен код процессора, вызов плагина, проверка прав доступа в процессорах
- [#MODX-1562] Исправлена ошибка в данных расписания сайта
- Исправлены вызовы OnDocUnpublished и OnDocPublished в процессорах для передачи ссылки modResource
- [#MODX-1564] Исправлена ошибка, из-за которой значения комбо переопределялись, если они были установлены до загрузки хранилища комбо
- Переместить события плагина предварительной визуализации элементов и ресурсов после регистрации js, чтобы обеспечить правильный порядок выполнения событий
- [#MODX-986] В дерево ресурсов добавлено «Дублировать контекст», а также «Удалить контекст»
- Исправлена ошибка с поставщиком по умолчанию в пользовательском интерфейсе управления пакетами
- [#MODX-1540] Исправлено отображение последнего входа в систему на странице приветствия .
- [#MODX-1567] Включена сортировка в Отчетах -> Информация о системе -> Недавно отредактированные документы
- [#MODX-1522] Редактирование пользователей ограничено только разрешением save_user
- Добавлена кнопка «перезагрузка» в журнал ошибок
- Исправлены активные ресурсы в отчетах — информация о системе
- Исправлен запрос версии базы данных в отчетах — информация о системе
- [#MODX-1560] Добавлена кнопка для усечения журнала менеджера
- Добавлен новый вид просмотра шаблонов в управлении пакетами; просмотр на основе эскизов.
- [#MODX-1534] Страница редактирования файла изменена, чтобы соответствовать другим структурам страниц
- [#MODX-1542] Добавлено отсутствующее разрешение на восстановление в базовую политику ресурсов
- [#MODX-1539] Добавлено разрешение view_user для устранения ошибки выпадающего списка пользователей, которая требовала «edit_user»; вид более применим там
- [#MODX-1553] Показать текущие разрешения в окне chmod
- [#MODX-1539] Исправлено несколько ошибок со страницей журнала менеджера .