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

Meh*_*san 4 php symfony

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

1. ROLE_SUPER_ADMIN
2. ROLE_ADMIN
3. ROLE_EDITOR
4. ROLE_AUTHOR
Run Code Online (Sandbox Code Playgroud)

现在想想,一个用户拥有角色 ROLE_AUTHOR。他可以访问特定文档,但其他用户无法访问该文档。所以我只想允许拥有ROLE_AUTHOR. 我在搜索时得到了一些解决方案,其中有类似的内容, is_granted('ROLE_AUTHOR')但这会返回分层结果。因为在我的配置文件中我设置了层次结构。那么我怎样才能只授予ROLE_AUTHOR用户权限呢?

xda*_*azz 12

您可以检查用户是否具有确切的角色。

在树枝中:

{% if 'ROLE_AUTHOR' in app.user.roles %}
...
{% endif %}
Run Code Online (Sandbox Code Playgroud)

在控制器中:

if (in_array('ROLE_AUTHOR', $this->getUser()->getRoles(), true)) {
    //...
}
Run Code Online (Sandbox Code Playgroud)