首页 > 解决方案 > Symfony access_control 规则

问题描述

我有 3 个用户角色

  1. ROLE_STAFF
  2. ROLE_ADMIN
  3. ROLE_CUSTOMER

我想为我的管理仪表板实施以下规则。

  1. 允许具有角色的用户ROLE_ADMIN全部访问
  2. 不允许具有角色的用户访问ROLE_CUSTOMER任何以/admin
  3. 允许未登录用户访问以/account
  4. 允许具有角色 ROLE_STAFF 的用户访问以/admin/business/*

对于上述规则,我在 access_control 中实现了以下规则

access_control:
    - { path: ^/account, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/business, role: ROLE_STAFF }
    - { path: ^/admin/dashboard, role: ROLE_STAFF }
    - { path: ^/admin, role: ROLE_ADMIN }

这没有按预期工作,问题是,当我使用 ROLE_STAFF 登录时,它可以工作,但是当我使用 ROLE_ADMIN 登录时,它会抛出拒绝访问错误。

这里可能有什么问题?

谢谢。

标签: symfonyaccess-control

解决方案


推荐阅读