【问题标题】:symfony2 access control restrict ROLE_SUPER_ADMINsymfony2 访问控制限制 ROLE_SUPER_ADMIN
【发布时间】:2016-10-25 04:26:00
【问题描述】:

我想限制除 (ROLE_CUSTOM) 以外的所有角色(包括 SUPER_ADMIN、ADMIN)访问某些路由

其中 ROLE_CUSTOM 是为指定路由创建的自定义角色。

唯一可以访问此路由的角色是 (ROLE_CUSTOM)

我想通过 security.access_control.yml 或防火墙配置来控制它。

我知道我可以使用 is_granted 函数,但我想通过 security.access_control.yml 或防火墙配置来控制它。

我怎样才能做到这一点?

【问题讨论】:

    标签: php symfony access-control symfony-security


    【解决方案1】:

    角色很简单,基本上是您根据需要发明和使用的字符串,因此ROLE_SUPER_ADMINROLE_ADMIN 已经是您创建的自定义角色。 那么一切都取决于您的角色层次结构 (Reference):

    security:   
        role_hierarchy:
            ROLE_CUSTOM:      ROLE_USER
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
    

    为了让您能够保护具有ROLE_CUSTOM 的用户的 URL 模式,只需执行以下操作 (Reference):

    security:
        access_control:
            - { path: ^/exclusive-path$, role: ROLE_CUSTOM }
    

    准备好了!只有ROLE_CUSTOM 的用户才能访问/exclusive-path 路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 2013-06-07
      • 1970-01-01
      • 2015-02-01
      相关资源
      最近更新 更多