我正在基于Symfony 2.7和Sonata Admin进行项目。我以超级用户身份登录,并且打开了两个浏览器选项卡。在第一个标签上,我已经成功加载了Video实体的列表视图。
在第二个选项卡上,我尝试为名为VideoDerivative的实体加载新的管理屏幕。而不是列表视图,我得到了未捕获的AccessDeniedException。扩展错误表明在CRUDController.php中调用了以下逻辑:
public function listAction()
{
if (false === $this->admin->isGranted('LIST')) {
throw new AccessDeniedException();
}
我发现这很有趣,因为如上所述,我可以查看其他实体类型的列表视图。
我不确定如何开始调试它。你会怎么做?
答案 0 :(得分:0)
原来,我需要创建和分配以下角色:
ROLE_APP_ADMIN_VIDEO_DERIVATIVE_ALL:
- ROLE_APP_ADMIN_VIDEO_DERIVATIVE_CREATE
- ROLE_APP_ADMIN_VIDEO_DERIVATIVE_EDIT
- ROLE_APP_ADMIN_VIDEO_DERIVATIVE_DELETE
- ROLE_APP_ADMIN_VIDEO_DERIVATIVE_LIST
- ROLE_APP_ADMIN_VIDEO_DERIVATIVE_WORKFLOW
将它们放到位(并让我的用户访问它们)解决了我的问题。