-1

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

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

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

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

4

1 回答 1

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

你有一个基于组的系统。

于 2012-02-12T15:12:54.740 回答