我已经广泛阅读并尝试过示例,但仍然无法掌握 Symfony2 ROLEs 和 Sonata Admin 的窍门。我有四个级别的用户,
- SuperAdmin 基本上是我的开发人员
- 作为应用程序所有者的管理员。他可以访问除用户/组管理之外的所有内容。管理员添加了一个代理,该代理将在系统中收到一封带有凭据的电子邮件
- 然后添加为该项目工作的人员(促进者)的雇员的代理机构
- 作为机构雇员的协调员,他们将字段条目输入系统
我想在 Sonata Admin 中:
- 引导者只能看到条目管理菜单
- 机构只能查看进入和促进者管理菜单
- 管理员只能查看代理、入口和促进者管理菜单
- SuperAdmin 查看其他所有内容,包括 SonataUserBundle 生成的用户和组管理
这是我的 security.yml 文件的样子
security:
role_hierarchy:
ROLE_FACILITATOR:
- ROLE_USER
- ROLE_SONATA_ADMIN
- ROLE_SONATA_ADMIN_ENTRY_EDIT
- ROLE_SONATA_ADMIN_ENTRY_LIST
- ROLE_SONATA_ADMIN_ENTRY_CREATE
- ROLE_SONATA_ADMIN_ENTRY_VIEW
- ROLE_SONATA_ADMIN_ENTRY_DELETE
ROLE_AGENCY:
- ROLE_FACILITATOR
- ROLE_SONATA_ADMIN_FACILITATOR_EDIT
- ROLE_SONATA_ADMIN_FACILITATOR_LIST
- ROLE_SONATA_ADMIN_FACILITATOR_CREATE
- ROLE_SONATA_ADMIN_FACILITATOR_VIEW
- ROLE_SONATA_ADMIN_FACILITATOR_DELETE
ROLE_OLX_ADMIN:
- ROLE_AGENCY
- ROLE_SONATA_ADMIN
- ROLE_SONATA_ADMIN_AGENCY_EDIT
- ROLE_SONATA_ADMIN_AGENCY_LIST
- ROLE_SONATA_ADMIN_AGENCY_CREATE
- ROLE_SONATA_ADMIN_AGENCY_VIEW
- ROLE_SONATA_ADMIN_AGENCY_DELETE
ROLE_SUPER_ADMIN:
- ROLE_OLX_ADMIN
- ROLE_ALLOWED_TO_SWITCHS