我正在使用“角色”安全处理程序,并希望创建一个新角色“ROLE_SONATA_ADMIN”并授予它所有权限,例如:
ROLE_SONATA_ADMIN: [MASTER]
我可以授予我的用户所有权限的唯一方法是在security.yml中提供它:
ROLE_SONATA_ADMIN:
- ROLE_SUPER_ADMIN
但我不想在我的角色中包含ROLE_SUPER_ADMIN,因为我可能希望将来添加一些限制
我试着用acl
handler: sonata.admin.security.handler.role
但得到:Argument 2 passed to Sonata\AdminBundle\Security\Handler\AclSecurityHandler::__construct() must be an instance of Symfony\Component\Security\Acl\Model\MutableAclProviderInterface
角色处理程序对我来说已经足够了,我不需要acl
如何创建角色并为其授予权限?我已阅读文档但仍不明白
Edit: 我现在明白了:对于每个实体,我需要通过security.yml中的角色设置权限,并使用ROLE_SONATA_ADMIN_ [服务名称] _ [权限]
我的服务名称是:sonata.admin.widget
这里的解决方案:
ROLE_SONATA_WIDGET_ADMIN:
- ROLE_SONATA_ADMIN_WIDGET_LIST
- ROLE_SONATA_ADMIN_WIDGET_VIEW
- ROLE_SONATA_ADMIN_WIDGET_CREATE
- ROLE_SONATA_ADMIN_WIDGET_EDIT
- ROLE_SONATA_ADMIN_WIDGET_DELETE
- ROLE_SONATA_ADMIN_WIDGET_EXPORT
ROLE_SONATA_ADMIN:
- ROLE_SONATA_WIDGET_ADMIN
1 回答
检查documentation中的第23.3点 . 您可以在 security.yml 中添加角色 . 如果您使用角色处理程序,它就像这样工作 .