在documentation中,有许多方法可以说明如何管理某些路由的访问控制。
我在access_control
中有security.yml
块,我在其中描述了哪个页面可以被哪个角色访问:
security:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/trainee, roles: ROLE_TRAINEE }
- { path: ^/university, roles: ROLE_UNIVERSITY_PROFESSOR }
- { path: ^/company, roles: ROLE_COMPANY_TUTOR }
现在只能使用这些ROLES
而不是其他路径访问这些路线。
在这些路线中,我有一些表格,我想知道access_control
是否足以让这些表格不被其他ROLE
传达?
我在互联网上看到一些人们在表单提交中放置isGranted()
的例子:
if ($form->isValid()) {
if (!$authorizationChecker->isGranted('ROLE_TRAINEE')) {
throw new AccessDeniedException();
}
// ...
}
但在这里,我不确定他们是从access_control
保护这些路线还是仅使用isGranted()
来保护这些路线。
有人可以解释这个区别吗?我是否也应该使用isGranted()
保护表单,即使这些路由受access_control
保护?
答案 0 :(得分:0)
拥有访问控制规则就足够了,如果你的表单位于与access_control的正则表达式匹配的uri后面(为什么你不测试这个......?)