-1

作成しているアプリケーション用にカスタマイズされたRBACソリューションを探しています。カジュアルなCanCanとの主な違いは、RBACがユーザーモデルではなく、完全にカスタム化された他のモデルに依存していることです。

たとえば、ユーザーはグループに属し、そのグループには特定の権限を持つロールがあります。つまり、ユーザーはグループ「workers」(彼はワーカー)に属している可能性があり、そこではワーカーは「修正」することができます。

これを実装する前に私が実際に聞きたいのは、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 に答える