2010-12-26 10 views
2

delcarative_authorization gemをレールに使用すると、すべてのコントローラのアクションへのロールアクセスを許可するショートカットがありますか?rails宣言的承認、コントローラのすべてのアクションを許可しますか?

privileges do 
    # default privilege hierarchies to facilitate RESTful Rails apps 
    privilege :manage, :includes => [:create, :read, :update, :delete] 
end 

私のコントローラではCRUDだけではなく、より多くの制御方法があるため、十分ではありません。以下のような

何か:

role :foo do 
    has_permission_on :bar, :to =>[:all] 
    end 

は完璧だろうが、私はドキュメントでそれを見つけていませんよ。

答えて

0

簡単な方法はありません。 This threadでは、「マスター」ロールをチェックしてフィルタリングを完全にバイパスするという1つの方法が考えられます。

0

私はこのようなものを使用します。

privileges do 
    # default privilege hierarchies to facilitate RESTful Rails apps 
    privilege :manage, :includes => [:create, :read, :update, :delete] 
    method_names = Bar.action_methods.to_a 
    meths = method_names - %w{create read update delete} 
    privilege :all_others, :includes => meths.map{|m| m.to_sym} 
end 

role :foo do 
    has_permission_on :bar, :to =>[:manage,:all_others] 
end 

何かのようであるが:より良いあなたの要件に合うかもしれない

privileges do 
    # default privilege hierarchies to facilitate RESTful Rails apps 
    privilege :manage, :includes => [:create, :read, :update, :delete] 
    privilege :all, :includes => Bar.action_methods 
end 

role :foo do 
    has_permission_on :bar, :to =>[:all] 
end 

関連する問題