【问题标题】:role hierarchy inheritance - Symfony2角色层次继承 - Symfony2
【发布时间】:2012-11-13 10:11:26
【问题描述】:

我在 security.yml

中的层级角色有问题

role_hierarchy

    ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
    ROLE_ADMIN: [ROLE_PILOT, ROLE_EXPERT]
    ROLE_PILOT: ROLE_PRODIVER
    ROLE_PROVIDER: ROLE_PROVIDER_EXTERNAL
    ROLE_PROVIDER_EXTERNAL: ROLE_USER

当我在 TWIG 中使用 *is_granted* 时:

{% if is_granted('ROLE_PROVIDER_EXTERNAL') %}
 <li class="dropdown">[...]</li>
{% endif %}

通常,ROLE_PILOT 应该能够通过角色继承来查看这个 HTML 元素。但如果用户在 ROLE_PILOT 中连接,则 HTML 元素无法为他显示...

有人对我的问题有想法吗?
谢谢

【问题讨论】:

  • 我觉得规则一定要从上到下写,这样最弱的规则就在上面,而不是在下面。
  • 我试过了,但是没有任何变化。 PILOT 是继承的权限提供者,我的层次结构没有?!
  • var_dump($this-&gt;getContainer()-&gt;getParameter('security.role_hierarchy.roles'))(在控制器中)返回什么?
  • 我有相同的层次结构,但在 Php 而不是 Yaml 中。 5 个角色的数组:(...简化数组...)ROLE_PROVIDER_EXTERNAL =&gt; ["ROLE_USER"] ROLE_PROVIDER =&gt; ["ROLE_PROVIDER_EXTERNAL"] ROLE_PILOT =&gt;["ROLE_PRODIVER"] ROLE_ADMIN =&gt; ["ROLE_PILOT", "ROLE_EXPERT"] ROLE_SUPER_ADMIN ["ROLE_ADMIN", "ROLE_ALLOWED_TO_SWITCH"]

标签: php symfony acl hierarchical-data


【解决方案1】:

您的代码显示:

ROLE_PILOT: ROLE_PRODIVER

尝试将其更改为:

ROLE_PILOT: ROLE_PROVIDER

【讨论】:

  • 我昨天发现了这个大错误。问题解决了,我的角色层次没问题。
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 2013-11-18
  • 2013-06-16
  • 2021-01-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-06-16
相关资源
最近更新 更多