Sonata管理员用户

时间:2017-11-16 13:28:47

标签: symfony permissions sonata

我想在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

任何想法?也许不可能做我想做的事。

1 个答案:

答案 0 :(得分:0)

我没有找到如何解决它我想要的东西,但我做了一个解决方法。

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

如何创建新角色:

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

        role_admin: ROLE_ADMIN
        role_super_admin: ROLE_SUPER_ADMIN