我想在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
任何想法?也许不可能做我想做的事。
答案 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