我是symfony的新手,我现在使用FosUserBundle进行用户管理我想用FosUserBundle进行角色管理(使用单独的表管理角色),并且需要根据分配给他/她的角色授予用户访问权限。请提出一些实现此功能的好解决方案?
答案 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检查,控制器检查和添加/删除角色。