3

在多租户架构中,我可以使用 cancan 为组织的管理员实现权限,如下所示:

def admin
  can :manage, ModelName, organization: { id: @user.organization_id }
end

def superadmin
  can :manage, :all
end

但是,我不知道如何使用 rolify 做类似的事情?

if user.has_role? :superadmin
  can :manage, :all
else
  if user.has_role? :admin
    ***can :manage, ModelName, :id => _______________ ***
  end
end

显然,我希望管理员可以使用属于他的所有 id 来管理 ModelName,但是如何通过用户和组织获取它?

谢谢,

4

1 回答 1

0

我不认为仅使用 rolify 就足够了,因为 rolify 仅用于管理用户角色。您需要的是像pundit这样的授权系统。

我一直在将 rolify 与 pundit 一起使用,它对多租户的东西非常有效。

于 2015-02-01T02:48:16.943 回答