【问题标题】:Sonata admin User奏鸣曲管理员用户
【发布时间】:2018-04-30 01:36:11
【问题描述】:

我想在 Sonata Admin Bundle 中设置我自己的权限,但我阅读了文档并且很困惑。我可以向角色添加标准权限,但我想做的是创建自己的权限“PUSH”,这意味着用户是否可以创建 PUSH 通知。

我正在按照Official Documentation 中的说明进行操作,但我无法做到。当然,我误解了一些东西,因为我认为这是很正常的事情。

更详细。我们有这些权限,我想在这里添加另一个权限。

Permission  Description
LIST    view the list of objects
VIEW    view the detail of one object
CREATE  create a new object
EDIT    update an existing object
DELETE  delete an existing object
EXPORT  (for the native Sonata export links)
ALL grants LIST, VIEW, CREATE, EDIT, DELETE and EXPORT

我的配置是:

security:
    handler: sonata.admin.security.handler.acl

    information:
        PUSH:     [LIST, PUSH]
        GUEST:    [VIEW, LIST]
        STAFF:    [EDIT, LIST, CREATE, PUSH]
        EDITOR:   [OPERATOR, EXPORT]
        ADMIN:    [MASTER]

    admin_permissions: [VIEW, CREATE, LIST, DELETE, UNDELETE, PUSH, EXPORT, OPERATOR, MASTER]

但是当我执行这个命令来设置新的命令不起作用

php app/console sonata:admin:setup-acl

我收到此错误:

[InvalidArgumentException]
  The code "PUSH" is not supported

有什么想法吗?也许不可能做我想做的事。

【问题讨论】:

    标签: symfony permissions sonata


    【解决方案1】:

    我没有找到我想要的解决方法,但我做了一个解决方法。

    我的想法是创建一个新角色 (PUSH_ROLE),然后将此角色分配给我想要的用户。然后在树枝模板中检查 is_granted('ROLE_PUSH') 是否为 True。

    如何创建新角色:

    sonata_admin:
        security:
            handler: sonata.admin.security.handler.acl
    
            role_admin: ROLE_ADMIN
            role_super_admin: ROLE_SUPER_ADMIN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-22
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多