如何检查用户是否在symfony2中完全具有一个角色?

时间:2014-03-17 07:29:38

标签: php symfony

假设在我的系统中有四个用户角色 -

1. ROLE_SUPER_ADMIN
2. ROLE_ADMIN
3. ROLE_EDITOR
4. ROLE_AUTHOR

现在想一想,用户有角色ROLE_AUTHOR。他可以访问特定文档,但没有其他用户可以访问它。所以我只希望拥有ROLE_AUTHOR的用户。我在搜索时得到了一些解决方案 is_granted('ROLE_AUTHOR')但这会返回分层结果。因为在我的配置文件中我设置了层次结构 那么我该如何仅授予ROLE_AUTHOR用户权限。

2 个答案:

答案 0 :(得分:3)

您可以检查用户是否具有该角色。

在树枝上:

{% if 'ROLE_AUTHOR' in app.user.roles %}
...
{% endif %}

在控制器中:

if (in_array('ROLE_AUTHOR', $this->getUser()->getRoles(), true)) {
    //...
}

答案 1 :(得分:0)

您可能正在将用户角色存储在您的用户实体中,因此您只需要为您的角色字段调用getter(即:getRoles())并检查它。