Symfony2 FOSUserBundle Ролевые сущности

В настоящее время я пытаюсь выяснить, как лучше всего реализовать сохраненные в доктрине сущности Role как отношения M2M, совместимые с FOSUserBundle. Раньше я использовал только строки с реализацией по умолчанию и сохранял их с сопоставлением массива доктрины.

Теперь мне нужно иметь роли как отдельные элементы, поскольку мы хотим создать серверную часть администратора, где другие могут предоставлять роли пользователям.

По сути, это заноза в заднице. Интерфейсы FOS созданы для строковых представлений, а не для сущностей ролей. Измените реализацию, вы сломаете много вещей, например, команды FOS для продвижения пользователей. И трудно понять, какие именно части интерфейсов необходимы, чтобы система безопасности symfony2 могла продолжать работать правильно.

Я мог бы переписать код управления ролями и использовать сущности ролей в максимально возможной степени, например:

$user->addRole(new Role('ROLE_FOO'));

Но это нарушает команды и, возможно, существующий код?

Или продолжать использовать:

$user->addRole('ROLE_FOO');

И пару кода диспетчера роли / сущности в addRole () (плохой дизайн).

Я заметил, что это серая область (ролевые объекты с FOS), и она упоминалась на досках symfony2 и здесь, но достойных решений не было.

У кого-нибудь был опыт или кто-нибудь может придумать достойное решение?

9
задан Habeeb Perwad 23 November 2012 в 05:20
поделиться