4

Deviseの代わりに認証にSorceryを使用してRailsAdminGemをインストールしようとしています。

Rails管理者は、独自の認証方法をアタッチするために使用できるフックを提供します。これが彼らが彼らのドキュメントで提供している例です(wardenを使用して):

config.authenticate_with do
  warden.authenticate! :scope => :admin
end
config.current_user_method { current_admin }

ブロック内で、before_filterSorceryがユーザーの認証に使用するを参照する必要があると思います。これはですrequire_login

ただし、それを試し/admin、ログアウト時にアクセスしようとすると、ルーティングエラーが発生します。

No route matches {:action=>"new", :controller=>"sessions"}

これはおそらく、メインアプリではなくエンジン内でリダイレクトされているために発生します。

どうすればこれを正しく設定できますか?

4

2 に答える 2

7
# config/initializers/rails_admin.rb
RailsAdmin.config do |config|
  config.authenticate_with do
    # Use sorcery's before filter to auth users
    require_login
  end
end

# app/controllers/application_controller.rb
class ApplicationController
  # Overwrite the method sorcery calls when it
  # detects a non-authenticated request.
  def not_authenticated
    # Make sure that we reference the route from the main app.
    redirect_to main_app.login_path
  end
end

#config/initializers/rails_admin.rb
RailsAdmin.config do |config|
  ...
  config.parent_controller = 'ApplicationController'
end
于 2012-03-23T06:06:03.103 に答える
0

Cancancan gemでSorceryを使用する場合config.current_user_method(&:current_user)は、config/initializers/rails_admin.rbファイルにも追加する必要があります。そうしないと、次のエラーが発生しますYou are not authorized

于 2016-01-25T14:58:22.147 に答える