2012-03-29 15 views
3

私は認証にdeviseを使用しており、アプリケーションではcancanを許可しています。アプリケーションは正常に動作しました。しかし今、私はdeviseとcancanで使用されている、すでに自分のアプリケーションに入っているすべてのユーザーを管理するためにアクティブな管理者を使いたいと思っていました。アクティブな管理者は、ユーザー用に独自のadmin_usersテーブルを作成します。どのように私はactive_adminが以前使用されていたユーザーと役割の表を使用するようにできますか?あなたの助けを借りて高すぎる。アクティブな管理者は、すでにdeviseとcancanによって使用されているusersテーブルを使用する方法を教えてください。

答えて

7

:ユーザー・クラスの名前を変更するには、単に最後の引数としてクラスを渡しますこの表の

実行:

rails generate active_admin:install --skip-users 

し、実行することを忘れないでください:

bundle exec rake db:migrate 

config/initializers/active_admin.rbファイルの認証方法を変更しようとすること。また、current_admin_userメソッドが作成されていることを確認してください。そうでない場合は、deviseのデフォルト(current_userメソッド)に変更するだけで済みます。

ログアウトリンクで使用されるhttpメソッドを:deleteに変更する必要があります。

config.logout_link_method = :delete 

そして、ログアウトアクションへのルートパス。より優れた認証方式を理解するために

config.logout_link_path = :destroy_user_session_path 

、私は私のapp/controllers/application_controller.rb関連するコードを貼り付けています:

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    # 
    # redirect registered users to a profile page 
    # of to the admin dashboard if the user is an administrator 
    # 
    def after_sign_in_path_for(resource) 
    resource.role == 'admin' ? admin_dashboard_path : user_path(resource) 
    end 

    def authenticate_admin_user! 
    raise SecurityError unless current_user.try(:role) == 'admin' 
    end 

    rescue_from SecurityError do |exception| 
    redirect_to root_path 
    end 
end 

はそれが多分他の誰かがあなたを助け、願っています。

0

activeadminコマンドを既に実行している場合.... admin_userを初期化のactive_admin.rbのユーザに変更し、cancan能力モデルのadminの能力を定義することで既存のユーザテーブルを使用できます。 DSLを許可する権限を許可するように

関連する問題