Описание функции
Добавить проверку resource-level прав MODX (checkPolicy view/save/publish/delete) для операций с товарами категории в Manager REST API, дополняя глобальные msproduct_* / view_document.
Проблема, которую решает
Сейчас CategoryProductsController и связанные маршруты опираются на глобальные MODX permissions. Пользователь с msproduct_save может мутировать товары в категории, к документу которой у него нет save/view policy — defense-in-depth слабее, чем в MODX resource tree.
Отдельно от #418 (parent scope / IDOR по category id в URL): даже с корректным scope остаётся вопрос «имеет ли пользователь право на этот документ категории/товара».
Предлагаемое решение
Альтернативные варианты
- Оставить только глобальные права (status quo).
- Ограничить document ACL только manager connector, web API не трогать.
Примеры использования
Менеджер с ролью «редактор категории X» может bulk publish только товары категории X, даже если глобально msproduct_publish выдан широко.
Дополнительный контекст
Security review PR #418 / #443; не регрессия diff #418, архитектурный hardening.
Описание функции
Добавить проверку resource-level прав MODX (
checkPolicyview/save/publish/delete) для операций с товарами категории в Manager REST API, дополняя глобальныеmsproduct_*/view_document.Проблема, которую решает
Сейчас
CategoryProductsControllerи связанные маршруты опираются на глобальные MODX permissions. Пользователь сmsproduct_saveможет мутировать товары в категории, к документу которой у него нет save/view policy — defense-in-depth слабее, чем в MODX resource tree.Отдельно от #418 (parent scope / IDOR по category id в URL): даже с корректным scope остаётся вопрос «имеет ли пользователь право на этот документ категории/товара».
Предлагаемое решение
viewна ресурс категории{id}(и при nested — на категорию-родителя товара или на сам товар).save/publish/deleteна msProduct document.Альтернативные варианты
Примеры использования
Менеджер с ролью «редактор категории X» может bulk publish только товары категории X, даже если глобально
msproduct_publishвыдан широко.Дополнительный контекст
Security review PR #418 / #443; не регрессия diff #418, архитектурный hardening.