我使用FOS用户捆绑管理访问到我的应用程序。 因为我需要一组概念,我已经实现了我需要的东西的文档中描述的组 。
一切都为创建用户和组,但是当我与一个用户登录,并试图让他的角色很好,他有没有,但USER_ROLE。
这里是我的用户
use FOS\UserBundle\Entity\User as BaseUser;
class RegistredUser extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="myBundle\Entity\RegistredUserGroup")
*/
protected $group;
[...]
}
这里是我的集团类
use FOS\UserBundle\Entity\Group as BaseGroup;
class RegistredUserGroup extends BaseGroup
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
[...]
}
我的用户在RegistredUser表设置好的角色没有,但有一个的groupId设置好的。 本组有ROLE_ADMIN作用。
在我的布局,我尝试检查这样的作用:
{% if is_granted('ROLE_ADMIN') %}
<dl class="menuIcon">
<dd><img src="{{ asset('bundles/bundle/images/user.png') }}" alt=""></dd>
<dd>{{ "menu.gererReferentiel"|trans }}</dd>
</dl>
{% endif %}
但是Symfony的不显示任何内容。
我使用的检查GROUPE角色不好的作用? 还是我在做别的事情了?
一种解决方案越来越groups_role通过
{% if app.user != null and app.user.group.hasRole('ROLE_ADMIN') %}
但有这样做的任何其他方式?