我想说我有三个角色:
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(或该metter的任何其他自定义角色)?
2)access_control会检查已登录的用户角色,并且假设我是ROLE_ADMIN并尝试访问某个用于ROLE_USER的页面,symfony会处理并说“这不适用于管理员,这是针对用户的” ?
3)如果symfony无法为我处理这个问题,是否可以在每个页面上打开/刷新一些事件监听器来检查这个?
我不想检查登录用户的每个控制器。这有点愚蠢。
答案 0 :(得分:2)