4

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

例子:

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

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

  • ROLE_SECTION1
  • ROLE_SECTION2
  • ROLE_SECTION3

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

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

最后,问题很简单,如下:

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

4

1 回答 1

0

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

if ($this->securityContext->isGranted('Role_section1') === false) {
    echo 'forbidden';
}
于 2013-11-18T14:46:31.480 回答