使用FosUserBundle symfony2管理多个角色

时间:2015-05-19 06:17:04

标签: symfony fosuserbundle

我是symfony的新手,我现在使用FosUserBundle进行用户管理我想用FosUserBundle进行角色管理(使用单独的表管理角色),并且需要根据分配给他/她的角色授予用户访问权限。请提出一些实现此功能的好解决方案?

2 个答案:

答案 0 :(得分:0)

您可以使用用户组为用户设置所需角色。并使用控制器或树枝模板中的isGranted('ROLE')方法进行检查

答案 1 :(得分:0)

您可以查看文档以获取security.yml的配置:

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md

然后在层次结构中指定ROLES后,您可以开始访问security.yml配置的access_control部分中的特定角色。

出于某些原因,您需要检查树枝或控制器中还有一些功能,允许您检查用户是否被授予此角色或该角色:

$this->container->get('security.context')->isGranted('YOUR_CUSTOM_ROLE');

或树枝:

{%if is_granted('YOUR_CUSTOM_ROLE')%} /* show some custom data */ {%endif%}

您还可以使用以下方式在用户中添加或删除角色:

   $user->removeRole('ROLE_ADMIN');
   $user->addRole('YOUR_CUSTOM_ROLE'); 
   $em->persist($user);
   $em->flush();

这通常是您需要角色的一般,access_control配置,Twig检查,控制器检查和添加/删除角色。