【问题标题】:Customize Sonata-admin dashboard "home"自定义 Sonata-admin 仪表板“主页”
【发布时间】:2013-12-19 05:13:07
【问题描述】:

我是 Sonata 项目的新手,在“玩”它时,我想将它用于我的一个项目。

但是关于 Sonata 以及它的工作方式和可以定制的方式,我仍然有一些问题。

他们在这里:

  • 是否可以使用自定义控制器来显示仪表板 “家”?
  • 我想使用角色并且仅使用角色来管理我的安全性 但无法弄清楚如何将角色添加到显示的列表中 当您使用用户创建表单时(默认位于 /admin/my/bundle/user/create) 在“管理”选项卡下。是吗 可能的? 屏幕解释更多:

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

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

【问题讨论】:

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


    【解决方案1】:

    在 symfony 中,您可以通过继承该包来自定义第三方包。因此,要使用您自己的控制器,请逐步执行以下操作:

    在您的自定义包中:AcmeDemoBundle.php 添加:

    public function getParent()
    {
        return 'SonataAdminBundle';
    }
    

    现在您的包正在继承 SonataAdminBundle

    在您的自定义控制器中:AcmeDemoBundleCustomController.php

    class CustomController extends CoreController {
    
      public function dashboardAction()
      {
          ...
          /* Here goes your code */
      }
    
    }
    

    【讨论】:

    • Turdaliev 这似乎是个好主意,您对其他 2 点有什么想法吗?
    • 我建议你FOSUserBundle + SonataUserBundle作为用户管理工具。
    • 您自己处理安全问题。我的意思是没有任何第三方捆绑包。
    • 我也在使用 FosUserBundle + SonataUserBundle :) 我只是想弄清楚如何将角色添加到管理用户权限时显示的列表中。我已将其添加到原始帖子中。
    • FOSUserBundle 中有group 实体,用于添加新角色。试试
    【解决方案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

    【讨论】:

    • 感谢您的帮助雨果!我正在检查这个:)
    猜你喜欢
    • 2014-06-01
    • 2013-09-06
    • 2013-11-25
    • 2018-07-22
    • 1970-01-01
    • 2012-07-15
    • 2016-06-25
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多