我想事实并非如此。首先,要编辑的主要角色的名称取决于服务名称。例如,如果管理员的服务是
sonata.user.admin
,则角色将是,例如:
ROLE_SONATA_USER_ADMIN_LIST
ROLE_SONATA_USER_ADMIN_VIEW
正如你所看到的,前缀总是
ROLE
(symfony 2要求),然后是服务名称(但用下划线和所有大写字母交换点),并以特定权限的前缀结束:
-
LIST:查看对象列表
-
VIEW:查看一个对象的详细信息
-
CREATE:创建一个新对象
-
编辑:更新现有对象
-
DELETE:删除现有对象
-
出口:(用于本地索纳塔出口链接)
据我所知,没有为编辑、列出和创建预定义ROLE_SONATA_USER_STAFF。但是,您可以在security.yml文件的层次结构中定义它:
security:
role_hierarchy:
# Setting up
ROLE_SONATA_USER_STAFF:
- ROLE_SONATA_USER_ADMIN_EDIT
- ROLE_SONATA_USER_ADMIN_LIST
- ROLE_SONATA_USER_ADMIN_CREATE
# using the staff role to create new roles
ROLE_MANAGE_USERS: [ROLE_SONATA_USER_STAFF]