【问题标题】:ZF2 BjyAuthorize get user highest roleZF2 BjyAuthorize 获取用户最高角色
【发布时间】:2014-06-10 16:54:44
【问题描述】:

我在使用 BjyAuthorize 时遇到了一点问题:我可以检索所有用户的角色,但我只想要最高的角色。

例如,如果用户是管理员,我可以检索他的所有角色(访客、用户和管理员),但只想显示管理员。

有人找到解决办法了吗?

【问题讨论】:

    标签: zend-framework2 bjyauthorize


    【解决方案1】:

    您必须定义最高的含义。在权限继承的情况下,没有父母的人拥有最少的权限。但这仅在它们相关时才有效。因此,如果它们像 admin -> user -> guest 这样相关,其中箭头可以读作“继承权限”,那么admin 很可能(不考虑拒绝规则)最多权限,因为尚未为用户分配另一个继承自 admin 的角色。

    当 f.e. admin继承自user的权限,而guestuseradmin完全没有关系,那就更复杂了。

    • admin -> user

    • guest

    要确定哪个权限更多(角色的命名很明显,但对您的应用程序却没有),您必须将guest的权限与admin的权限进行比较。

    这并不容易,我怀疑这是您想要的,因为父母可能拥有更多权限。 F.e.当拒绝规则应用于继承者时。

    【讨论】:

    • 我知道我可以创建一个方法来查找没有父级的角色,因为我正在使用继承。它会起作用,但正如你所说,它过于复杂。如果我为每个用户只设置一个角色,BjyAuthorize 是否仍然有效?显然是最高的。
    【解决方案2】:

    我意识到这是旧的,但如果它对任何人有用: 如果您有一个用户角色和一个从用户那里继承权限的管理员角色,则您不必为管理员提供这两个角色,只需为管理员角色。他们也会自动从用户组获得权限;这就是继承的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2013-05-21
      • 2012-11-28
      • 1970-01-01
      相关资源
      最近更新 更多