我使用Symfony2和Sonata。
我有一个应用程序的部分列表,我想让我的用户访问这些部分。
的例子:
- John应该有权访问section1和section3
- Bob应该有权访问section2和section3
所以我创建了3个角色,我可以附加到用户/组(通过sonata)
- ROLE_SECTION1
- ROLE_SECTION2
- ROLE_SECTION3
但是当我创建新部分时,我希望在admin
中自动列出相关角色。(而不必每次在我的security.yml
中声明它们)
我看到sonata-admin-user在使用角色安全处理程序时这样做,
但我不知道如何做同样的。
最后这个问题很简单,如下:
如何在Sonata用户管理包编辑器列表中添加一些动态可选角色?
首先可以从数据库加载用户和组。参见Symfony2食谱从数据库加载用户。然后在每个节的控制器中:
if ($this->securityContext->isGranted('Role_section1') === false) {
echo 'forbidden';
}