Перед началом
Определите, читает ли endpoint данные или изменяет их. Для административных мутаций используйте предусмотренный базовый класс или контракт.
Порядок действий
- Разместите frontend action в
Actions, backend — вBackend/Actionsсоответствующего компонента. Имя файла должно совпадать с классом. - Для чистой административной мутации используйте AdminMutationAction либо компонентную базу с AdminMutationActionContract.
- Если action показывает GET-форму и обрабатывает POST, вызовите
enforceAdminMutationContract()в изменяющей ветке. - Получайте входные значения через RequestService с типом. Дополнительно проверьте принадлежность объекта и ограничения конкретного компонента.
- После redirect, ошибки или другого терминального ответа явно завершите метод, если выполнение может продолжиться.
- Проверьте разрешённое сохранение и отказы для GET, неверного CSRF и недостаточных прав.
Обратите внимание. Не собирайте административные guard-проверки вручную в каждом action. Общий контракт должен выполняться до бизнес-логики.
Проверьте результат
Запрос с корректными правами сохраняет данные один раз, недопустимые запросы не изменяют состояние.