Rails админ с Волшебством - PullRequest
4 голосов
/ 22 марта 2012

Я пытаюсь установить Rails Admin Gem , используя Волшебство для аутентификации вместо Devise.

Администратор Rails предоставляет хук, который вы можете использовать дляприкрепите свой собственный метод аутентификации. Здесь - это пример, который они предоставляют в своих документах (используя смотрителя):

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

Я предполагаю, что внутри блока мне нужно сослаться на before_filter, который использует Волшебство для аутентификациипользователи, которые будут require_login.

Однако, когда я пытаюсь это сделать и пытаюсь посетить /admin при выходе из системы, я получаю ошибку маршрутизации:

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

Это, вероятно, происходит потому, что меня перенаправляют в движке, а не в главном приложении.

Как я могу правильно настроить это?

Ответы [ 2 ]

6 голосов
/ 23 марта 2012
# 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
0 голосов
/ 25 января 2016

Если вы используете Волшебство с Cancancan gem, вы также должны добавить config.current_user_method(&:current_user) в ваш файл config/initializers/rails_admin.rb, иначе вы получите ошибку: You are not authorized.

...