2011-01-19 16 views
8

管理者の名前空間を持つ一連のコントローラがあります。私はユーザーが管理者でない限り、これらへのアクセスを制限したい。権限のない人に電話をかけることなくCanCanを使ってこれを行う方法はありますか?すべてのコントローラのあらゆる方法で?CanCanによる管理者承認

答えて

0

は今rails_adminあなたがその公式サイトでそれを見つけることができ、カンカンとの完全なサポートを持って、このトピックのwikiページがありますこの問題に対するいくつかの解決策を提示する。

  • @markで提案されているように、すべての操作の承認を確認する管理者用の基本コントローラを用意してください。
    • ユーザがadmin フラグを持っていることを確認することが必要な場合は、CanCanを使用する必要はありません。 (違っただけで通常のユーザーからではなく)それぞれ異なる他の管理者を処理するための
  • 、 は(これはちょっとオフトピックですが、関連する証明できる)別のAdminAbilityクラスを検討します。
+0

rails_adminに言及しましたか? –

+0

はい、あなたは正しいです、彼はrails_adminは言及しませんでした。私はrails_adminを使用することを推奨しません。なぜなら、私は思ったほど良くないからです。 –

1

Admin Namespaces wikiページ

class ApplicationController < ActionController::Base 
end 

class Admin::ApplicationController < ApplicationController 
    # these goes in your namespace admin folder 
    before_filter :check_authorized 

    def check_authorized 
    redirect_to root_path unless can? :admin, :all 
    end 
end 

class SomeadminController < Admin::ApplicationController 
    def some_action 
    # do_stuff 
    end 
end 
関連する問題