【发布时间】:2013-11-09 12:26:53
【问题描述】:
假设我有三个角色:
1) ADMIN_ROLE
2) USER_ROLE
3) COMPANY_ROLE
现在我为每个角色都有捆绑包。
1) AdminBundle
2) UserBundle
3) CompanyBundle
我有三个路线
1) /admin
2) /user
3) /company
我不想检查每个捆绑包中每个控制器中的用户是(他的角色是什么)。 symfony 安全的这一部分会为我做这些吗:
-{ path: ^/admin, roles: ROLE_ADMIN } #only ROLE_ADMIN will be able to see this
-{ path: ^/user, roles: ROLE_USER } #only ROLE_USER will be able to see this
-{ path: ^/company, roles: ROLE_COMPANY } #only ROLE_COMPANY will be able to see this
我的问题是:
1) 是否可以拥有 ROLE_COMPANY(或该仪表的任何其他自定义角色)?
2) access_control 会检查登录用户的角色,如果我是 ROLE_ADMIN 并试图访问一些为 ROLE_USER 提供的页面,symfony 会处理它并说“这不是给管理员的,这是给用户的” ?
3) 如果 symfony 不能为我处理这个问题,是否可以在每个打开/刷新页面上设置一些事件监听器来帮我检查这个?
我不想检查登录用户的每个控制器。这有点愚蠢。
【问题讨论】: