允许访问特定页面

时间:2019-11-29 10:10:42

标签: symfony4 symfony-security

我使用的是Symfony 4.3.2,试图找到一种方法,以允许具有角色(CommissionOwner)的用户仅访问特定页面。

  • 具有除“ CommissionOwner”以外的角色的用户可以访问所有页面。

  • 具有“ CommissionOwner”角色的用户只能访问以下页面。

    • www.xyz.com/Loginlandingpage
    • www.xyz.com/reportSalesCommissions

我正在尝试 myApp / config / packages / security.yaml

access_control:
     - { path: ^/reportSalesCommissions, roles: IS_CommissionOwner }

1 个答案:

答案 0 :(得分:1)

每个角色名称都应以 ROLE _

开头

因此,如果您将角色声明为 ROLE_COMMISSION_OWNER

您可以在安全配置中正确创建角色层次结构和access_control

应该是这样的:

access_control:
    - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/reportSalesCommissions, roles: ROLE_COMMISSION_OWNER }
    - { path: ^/loginlandingpage, roles: ROLE_COMMISSION_OWNER }
    - { path: ^/, roles: ROLE_USER }

  role_hierarchy:
    ROLE_USER: ROLE_COMMISSION_OWNER