Symfony2 - 显示动态可选角色

时间:2013-04-11 16:36:53

标签: php symfony sonata-admin sonata-user-bundle

我正在使用Symfony2和Sonata 我有一个关于我的应用程序的部分列表,我想让我的用户访问它。

示例:

  • John应该有权访问section1和section3
  • Bob应该有权访问section2和section3

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

  • ROLE_SECTION1
  • ROLE_SECTION2
  • ROLE_SECTION3

但是当我创建新的部分时,我希望在管理员中自动列出相关角色 (无需每次都在我的security.yml

中声明它们

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

最后问题很简单,如下:

如何在Sonata用户管理包编辑器列表中添加一些动态可选角色?

1 个答案:

答案 0 :(得分:0)

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

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