我对Sonata项目很陌生,并且正在“玩”它,我想将它用于我的一个项目。
但是,对于我来说,仍然存在一些关于索纳塔及其工作方式和可定制的问题。
他们是:
我想使用角色和角色来管理我的安全性 但无法弄清楚如何将Roles添加到显示的列表中 当您使用用户创建表单时(默认情况下位于 {“1}})在”管理“标签下。是吗 可能? 屏幕解释更多:
如果是,如果有人提示如何做到这一点,欢迎他们! :)
答案 0 :(得分:2)
在symfony中,您可以通过继承该捆绑包来自定义第三方捆绑包。因此,要使用您自己的控制器,请按以下步骤执行以下操作:
在自定义捆绑包中:AcmeDemoBundle.php
添加:
public function getParent()
{
return 'SonataAdminBundle';
}
现在,您的捆绑包正在继承SonataAdminBundle
。
在自定义控制器中:AcmeDemoBundleCustomController.php
class CustomController extends CoreController {
public function dashboardAction()
{
...
/* Here goes your code */
}
}
答案 1 :(得分:2)
Turdaliev的回答是第一个问题的正确方法。
关于角色,显示的是那些存在于应用程序的security.yml文件中的角色:
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_SONATA_ADMIN, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH, ROLE_SONATA_PAGE_ADMIN_PAGE_EDIT, ROLE_SONATA_PAGE_ADMIN_BLOCK_EDIT]
在Sonata中,实现了ACL机制,为各种操作添加了新角色,例如查看,删除......您可以在演示中看到详细示例(https://github.com/sonata-project/sandbox),查看SonataAdmin安全文档更多详情:http://sonata-project.org/bundles/admin/master/doc/reference/security.html