Я в настоящее время использую FOSRESTBundle с JMSSerialize, чтобы сделать RESTFull API (конечно).Динамические группы сериализации на FOS REST bundle
Мой проект - экстрасеть для клиентов и администраторов.
Таким образом, я должен отключить какое-либо поле от просмотра клиентом, только видимое для администраторов.
Я начал из этой конфигурации сериализатора для объекта:
AppBundle\Entity\IncidentComment:
exclusion_policy: ALL
properties:
id:
expose: true
groups: [list, details]
author:
expose: true
groups: [list, details]
addedAt:
expose: true
groups: [list, details]
content:
expose: true
groups: [details]
customerVisible:
expose: true
groups: [list_admin, details_admin]
Как вы можете видеть, customerVisible
группы имеют _admin
суффикс. Это поле должно отображаться только для администраторов.
Я хочу динамически добавлять группы с суффиксом _admin
для установки групп на представлениях, если у пользователя есть, например, роль ROLE_ADMIN или другое условие, не записывая его на каждое действие каждого контроллера останова.
Я думал о создании custom view handler с аргументом контекста безопасности для добавления группы, но я не знаю, является ли это правильным способом.
Как вы думаете, это хороший способ? Есть ли у вас какие-либо предложения по этому поводу?
Кстати, если у какого-то разработчика была такая же проблема, я буду рад здесь, как он это решил! :)
Спасибо.
Привет Soullivaneuh, я в настоящее время сталкивается с точно такой же проблемой. Было бы замечательно, если бы был способ добавить группу к сериализатору во время выполнения в контроллере. –