【问题标题】:Custom RBAC with CanCan (or other plugin?)使用 CanCan(或其他插件?)的自定义 RBAC
【发布时间】:2012-02-12 00:43:33
【问题描述】:

我正在为我正在制作的应用程序寻找定制的 RBAC 解决方案。与休闲 CanCan 的主要区别在于 RBAC 不依赖于用户模型,而是依赖于其他一些模型,完全自定义。

例如,一个用户属于一个组,并且该组具有具有特定权限的角色。也就是说,用户可能属于“工人”组(他是工人),工人可以“修复东西”。

在实现这个之前我真正想问的是,CanCan 是否能够做这样一个定制的事情。或者,如果有更好的解决方案来设计自定义 RBAC,或许还有更好的插件?

请注意,我尝试执行的此 RBAC 与实际用户身份验证无关,而只是一种使用内部资源的方式,例如谁能够修复东西,谁能够清理等等..

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-plugins cancan rbac


    【解决方案1】:

    CanCan 很少关心权限的来源。

    替换

    class Ability
      include CanCan::Ability
    
      def initialize(user)
        if user.has_role?(:foo)
          can :manage, :bars
        end
      end
    end
    

    class Ability
      include CanCan::Ability
    
      def initialize(user)
        if user.group.has_role?(:foo)
          can :manage, :bars
        end
      end
    end
    

    你有一个基于组的系统。

    【讨论】:

    • 哦,我明白了,这似乎可以满足我的需要,thanx
    猜你喜欢
    • 2017-02-10
    • 2020-01-05
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多