В настоящее время я пытаюсь выяснить, как лучше всего реализовать сохраненные в доктрине сущности Role как отношения M2M, совместимые с FOSUserBundle. Раньше я использовал только строки с реализацией по умолчанию и сохранял их с сопоставлением массива доктрины.
Теперь мне нужно иметь отдельные роли, поскольку мы хотим создать серверную часть администратора, где другие могут предоставлять роли пользователям.
По сути, это заноза в заднице. Интерфейсы FOS созданы для строковых представлений, а не для сущностей ролей. Измените реализацию, вы сломаете много вещей, например, команды FOS для продвижения пользователей. И трудно понять, какие именно части интерфейсов необходимы, чтобы система безопасности symfony2 могла продолжать работать правильно.
Я мог бы переписать код управления ролями и максимально использовать сущности ролей, например:
$user->addRole(new Role('ROLE_FOO'));
Но это нарушает команды и, возможно, существующий код?
Или продолжайте использовать:
$user->addRole('ROLE_FOO');
И пара кода менеджера роли / объекта в addRole()
(плохой дизайн).
Я заметил, что это серая область (сущности ролей с FOS), и она упоминалась на досках symfony2 и здесь, но достойных решений нет.
Кто-нибудь имел опыт или может придумать достойное решение?
__toString
в сущности Role и вилку FOSUserBundle для преобразования в строку, когда это необходимо ... - person greg0ire   schedule 06.12.2011