自定义Sonata-admin仪表板“home”

时间:2013-12-03 08:31:26

标签: symfony sonata-admin symfony-sonata sonata-user-bundle

我对Sonata项目很陌生,并且正在“玩”它,我想将它用于我的一个项目。

但是,对于我来说,仍然存在一些关于索纳塔及其工作方式和可定制的问题。

他们是:

  • 是否可以使用自定义控制器显示仪表板 “家”?
  • 我想使用角色和角色来管理我的安全性 但无法弄清楚如何将Roles添加到显示的列表中 当您使用用户创建表单时(默认情况下位于 {“1}})在”管理“标签下。是吗 可能? 屏幕解释更多: enter image description here

    如果是,如果有人提示如何做到这一点,欢迎他们! :)

  • 使用此角色意味着在我的对象/控制器上管理这些角色的权限。是否有任何机制捆绑或我必须添加我的?

2 个答案:

答案 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