Skip to content

fix(manager-api): require mssetting_save for config writes#404

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-381-config-mssetting-save
Open

fix(manager-api): require mssetting_save for config writes#404
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-381-config-mssetting-save

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

Группа /api/mgr/config (PUT/DELETE page-fields и sections) была доступна любому аутентифицированному менеджеру — только outer AuthMiddleware, без PermissionMiddleware.

Мутации закрыты mssetting_save (как write у соседних settings-групп). GET оставлен на mgr Auth: формы товара (ProductDataFields) читают page-fields без права настроек.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #381

Как это было протестировано?

  • Ручное тестирование
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Gate E (exit codes):

  • php -l manager.php / ConfigRoutePermissionsTest / ModxStub → 0
  • php core/components/minishop3/tests/ConfigRoutePermissionsTest.php → 0 (OK)
  • red-green: без middleware на write → fail (actual: NULL); с фиксом → 0

Конфигурация тестирования:

  • MiniShop3: ветка fix/issue-381-config-mssetting-save
  • MODX: n/a (Router + stub modX)
  • PHP: 8.x локально

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • ESLint проходит без ошибок (для JS/Vue изменений)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

/api/mgr/config PUT/DELETE was Auth-only, so any logged-in manager could
change Vue form config. Gate writes with mssetting_save; leave GET on
mgr Auth so product forms still load without settings permission.
@Ibochkarev Ibochkarev added priority: high Важно исправить в ближайшее время bug Something isn't working labels Jul 16, 2026
@Ibochkarev Ibochkarev requested a review from biz87 July 16, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: high Важно исправить в ближайшее время

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] /api/mgr/config write без PermissionMiddleware (только Auth)

1 participant