【发布时间】:2013-04-24 03:34:22
【问题描述】:
我正在使用 Sonata Admin Bundle,但我在使用该功能时遇到了一些问题:
function configureRoutes(RouteCollection $collection){ }
如果我写一个简单的函数,该函数可以正常工作:
$collection->remove('create');
但是我想做的是根据连接的用户的角色删除一些路由,所以我尝试了:
$seguridad = $this->getConfigurationPool()->getContainer()->get('security.context');
if ($seguridad->getToken()->getUser() != "anon."){
if ( !$seguridad->isGranted('ROLE_ADMIN') ) {
$collection->remove('create');
}
}
但是以管理员身份登录我得到错误: 在 SonataAdminBundle:Block:block_admin_list.html.twig 的第 31 行渲染模板(“路由“admin_sademer_core_MIENTITY_create”不存在。”)期间引发了异常。
就像在某些时候奏鸣曲删除了我在进入仪表板之前创建的路线,然后当我进入仪表板时,我尝试输入路线创建但路线已经被删除。但我不确定发生了什么。
有什么想法吗?非常感谢!
【问题讨论】:
-
看看sonata-project.org/bundles/admin/master/doc/reference/…,实际上有一个内置的方法可以做到这一点。
-
我看到了这个页面,但不清楚如何将每个权限附加到每个实体的每个用户/角色。因为文档只显示了如何声明不同的权限,而不是如何声明每个实体的每个角色的权限。
标签: symfony roles configure sonata-admin