Symfony2 - 显示动态可选角色

Posted

技术标签:

【中文标题】Symfony2 - 显示动态可选角色【英文标题】:Symfony2 - Showing dynamic selectable roles 【发布时间】:2013-04-03 23:15:50 【问题描述】:

我正在使用 Symfony2 和 Sonata。 我的应用程序中有一个部分列表,我想向我的用户授予访问权限。

例子:

John 应该可以访问 section1 和 section3 Bob 应该可以访问 section2 和 section3

所以我创建了 3 个角色,我可以将它们附加到用户/组(通过奏鸣曲)

ROLE_SECTION1 ROLE_SECTION2 ROLE_SECTION3

但是当我创建新部分时,我希望相关角色自动列在管理员中 (不必每次都在我的security.yml 中声明它们)

我看到 sonata-admin-user 在使用角色安全处理程序时会这样做, 但我不知道该怎么做。

最后问题很简单,如下:

如何将一些动态可选角色添加到我的 Sonata 用户管理捆绑编辑器列表中?

【问题讨论】:

我也在找同样的东西。如果你发现了什么,请分享 :) 你应该投票赞成 :) (还没有找到任何东西) 【参考方案1】:

首先,您可以从数据库中加载用户和组。见Symfony2 cookbook Load user from database。然后在每个部分的控制器中:

if ($this->securityContext->isGranted('Role_section1') === false) 
    echo 'forbidden';

【讨论】:

以上是关于Symfony2 - 显示动态可选角色的主要内容,如果未能解决你的问题,请参考以下文章

为用户动态添加角色

Symfony 2.3 Bad Credentials 自定义提供程序

如何在 Symfony2 中创建和注册新角色

Symfony2\Doctrine - 检索用户角色

Symfony2 在 Twig 中获取用户角色

在 Symfony2 路由中,如何设置可选的子域