Symfony2 - 显示动态可选角色

dodit 发布于 2019-03-09 php 最后更新 2019-03-09 14:40 0 浏览

我正在用Symphony 2与Sonata合作。
我有一份关于我的应用程序的部分列表,我想让其访问我的用户。 例:

  • John应该可以访问section1和section3
  • Bob应该可以访问section2和section3
所以我创造了3个角色,我可以附加到用户/组(通过奏鸣曲)
  • ROLE_SECTION1
  • ROLE_SECTION2
  • ROLE_SECTION3
但是当我创建新的部分时,我希望自动在admin
中列出相关角色 (无需每次在我的security.yml中声明它们) 我看到sonata-admin-user在使用角色安全处理程序时会执行此操作,
但我不知道如何去做。 最后,问题很简单,如下所示: 我如何将一些动态可选角色添加到我的Sonata用户管理包编辑器列表中?
已邀请:

riure

赞同来自:

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

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