2013-10-27 9 views
3

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

Основная проблема: FosUserBundle \ Model \ User и FosUserBundle \ Model \ UserInterface определяют роли как массива. Я хочу преобразовать их в ArrayCollection/RoleInterface.

Первая попытка: переопределить с помощью Acme \ UserBundle \ Entity \ User, который расширяет FOSUserBundle \ Model \ User. Но это не работает, потому что я не могу переопределить функции ролей, определенные в интерфейсе.

Вторая попытка: Замена моделей пользователей FOS и Userinterface, что позволяет мне создавать функции и структуру базы данных, но оставляет мне другую проблему. Когда я это делаю, все в FOSUserBundle, которое ссылается на FOSUserBundle \ Model \ UserInterface, не сработает, что означало бы, что я должен переопределить почти весь пакет, который не похож на то, что вы хотели бы сделать только для добавления ролей.

Итак, в основном вопрос: как мне добавить роли базы данных в FOSUserBundle без необходимости переопределять весь пакет?

+1

Посмотрите на группы: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/groups .md –

ответ

-1

Вы можете добавить все просто использовать

$user->addRole('ROLE_XXXXX'); 

но вы должны определить ROLE_XXX в security.yml Nb: при определении роли вы должны начать с ROLE_YOURROLE

После, если вы расширяете пользователя вы можете определить новую функцию

public function ListRole(){ 

     foreach($this->getRoles() as $role){ 

     } 
} 
Смежные вопросы