Перейти к основному содержимому

Процессоры и коннектор

Все запросы панели идут в assets/components/prism/connector.php → штатный modConnectorRequest → процессор. Аутентификация и CSRF — стандартные механизмы MODX.

Действие — это имя класса​

Параметр action содержит полное имя класса процессора, а не путь к файлу:

action=Prism\Processors\Mgr\Item\GetList

Так процессоры остаются автозагружаемыми классами PSR-4 без карты файлов. Дополнение регистрирует свои процессоры тем же способом — отдельный коннектор не нужен.

CSRF: заголовок modAuth со значением MODx.siteId.

Что есть​

ПространствоПроцессоры
Mgr\Item\GetList, Get, Update, Remove, Sort, Toggle, Rethumb
Mgr\Upload\Init, Chunk, Finish
Mgr\Video\Create
Mgr\Embed\Create
Mgr\Tag\GetList, Create, Update, Remove
Mgr\Preset\GetList, Create, Update, Remove
Mgr\Field\GetList, Create, Update, Remove
Mgr\Output\Get, Save
Mgr\Thumbs\Clear
Mgr\Status\Get
Mgr\Ping

Требуемые права — в Правах доступа.

Права — не вся проверка. Процессоры, которые берут id элемента или ресурса прямо из запроса, сверяются ещё и с политикой родительского ресурса: view для чтения, save для изменений. Менеджер, ограниченный группами ресурсов, не доберётся до чужих медиа, подставив id. Массовые операции (Remove, Toggle, Rethumb) пропускают недоступное, а не отказывают целиком.

Загрузка частями​

Три шага, потому что на shared-хостинге upload_max_filesize обычно меньше файла:

  1. Upload\Init — заводит сессию: имя, размер, число частей. Проверяет расширение и лимиты до передачи данных.
  2. Upload\Chunk — принимает одну часть и дописывает её во временный файл.
  3. Upload\Finish — собирает файл, проверяет MIME по содержимому, пересобирает растр, считает хеш по результату и создаёт элемент.

Пересборка — не оптимизация, а граница доверия: на диск попадают байты, которые сгенерировал сервер, а не присланные. Подробнее — в Изображениях.

Брошенные сессии старше суток убирает cache:clear --uploads.