如何使用@IsGranted覆盖Symfony中的控制器方法的访问控制部分?

时间:2019-04-10 07:12:20

标签: symfony

我使用Symfony 4。

我仅拥有^/admin的角色ROLE_ADMIN。但是,我需要一些页面可供其他角色访问。例如,我希望角色/admin可以访问/admin/articleROLE_ASSISTANT。我从将@IsGranted("ROLE_ASSISTANT")添加到/admin/article控制器方法开始。但这没有帮助。在security.yaml中找不到有关如何覆盖访问控制的任何资源,但我确实需要。我不需要打开助手的整个管理部分,只需打开几页即可。

1 个答案:

答案 0 :(得分:2)

您不必从控制器覆盖它。只需在security.yaml文件中更改access_control的顺序即可。像这样:

access_control:
   - { path: ^/admin/article, roles: ROLE_ASSISTANT }
   - { path: ^/admin, roles: ROLE_ADMIN }