2012-02-12 16 views
0

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

たとえば、ユーザーはグループに属し、そのグループには特定のアクセス許可を持つ役割があります。つまり、ユーザーは「労働者」(彼は労働者)をグループに所属させることができ、労働者は「ものを修正する」ことができます。

これを実装する前に私が実際に尋ねることは、CanCanがこのようなカスタマイズされたことを実行できるかどうかです。または、カスタムRBACを設計するためのより良いソリューションがあれば、より良いプラグインかもしれませんか?

私がやろうとしているこのRBACは、実際のユーザー認証とは関係ありませんが、誰が誰かを修理できるか、誰がきれいにするかなどの内部リソースを使用する方法です。

答えて

1

CanCanは、アクセス許可の取得元についてはほとんど気にしません。

class Ability 
    include CanCan::Ability 

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

class Ability 
    include CanCan::Ability 

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

を交換してくださいそして、あなたはグループベースのシステムを持っています。

+0

オハイオ州私はそれが私の必要性のためにうまくいくように見える、 – Spyros

関連する問題