2011-11-15 12 views
0

Permissiveの代替案は誰にでも知っていますか?または機能の面で比較する他の宝石?許容レールに代わる宝石?

+0

は、具体的には、私は、モデルベースのアクセス許可のシステムを探しています。 – Teddy11

答えて

1

私は、カンカン上declarative_authorizationを好む

https://github.com/stffn/declarative_authorization

http://railscasts.com/episodes/188-declarative-authorization

http://steffenbartsch.com/blog/2008/09/delclarative-authorization/


declarative_authorizationであなたのモデルとメソッドの役割ベースの許可を定義することができます。

モデルの権限とモデルのメソッドを定義できます。特定の条件が満たされている場合、さらにアクセス権を制限することができます。オブジェクトの特定の属性に特定の値がある場合にのみ、特定のアクセス許可が適用されるように指定できます。

ここでは、通常のユーザーは、職場が採用されている会社の口座のみを読んで変更できるように指定しています(口座がツリー状に配置されていることを前提にしています)。

authorization do 
role :user do 
    # ... 
    has_permission_on :accounts , :to => [:index, :show, :edit, :update] do 
     if_attribute :id => is_in { user.employed_at_account.subtree_ids } 
    end 
    # ... 
    end 

    role :admin do 
    # ... 
    has_permission_on :accounts , :to => [:create, :new, :index, :show , :edit, :update ] 
    # ... 
    end 
end 
+0

私は宣言的承認を見ました。モデルのインスタンスに対してパーミッションを適用できないようですか?私が間違っているなら私を訂正してください。 – Teddy11

+0

CanCanより宣言的な権限を好んで使っている理由はなんですか? Railsのコミュニティのほとんどは、CanCanをナンバーワンの認可宝石として採用しているようです。 – Feech

1

それは「モデルベース」として適格かどうかは知りませんが、カンカン見てきました?:

https://github.com/ryanb/cancan

編集:

カンカンは(非公式)中止されていて、寄稿者はCancancanという新しいプロジェクトを作成しました。ユーザーの役割は、より複雑な場合

https://github.com/bryanrite/cancancan

関連する問題