Symfony2 FOSUserBundle Ролевые объекты - PullRequest
9 голосов
/ 05 декабря 2011

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

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

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

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

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

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

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

$user->addRole('ROLE_FOO');

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

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

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

1 Ответ

12 голосов
/ 13 декабря 2011

Я решил пойти со смесью реализации массива / ArrayCollection. Я старался максимально использовать существующие интерфейсы, чтобы не сломать систему безопасности. Я задокументировал свое решение на http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...