Skip to content

[Feature] Manager API: document-level ACL для category products #445

Description

@Ibochkarev

Описание функции

Добавить проверку 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 остаётся вопрос «имеет ли пользователь право на этот документ категории/товара».

Предлагаемое решение

  • Для read: проверять view на ресурс категории {id} (и при nested — на категорию-родителя товара или на сам товар).
  • Для write/publish/delete: save / publish / delete на msProduct document.
  • Согласовать с legacy processors и [Bug] Manager API: customers CRUD и category publish под view_document #378 (route-level permissions).

Альтернативные варианты

  • Оставить только глобальные права (status quo).
  • Ограничить document ACL только manager connector, web API не трогать.

Примеры использования

Менеджер с ролью «редактор категории X» может bulk publish только товары категории X, даже если глобально msproduct_publish выдан широко.

Дополнительный контекст

Security review PR #418 / #443; не регрессия diff #418, архитектурный hardening.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions