Мы недавно обновились до ActiveAdmin 1.1.0 на сайте, который поддерживает две отдельные модели пользователей - Users и AdminUsers. ActiveAdmin аутентифицирует AdminUsers, а остальная часть сайта аутентифицирует пользователей. Оба пути используют Devise, вот так:
devise_for :users, controllers: {sessions: :practitioner_sessions, passwords: :practitioner_passwords}
admin_devise_config = ActiveAdmin::Devise.config
admin_devise_config[:controllers][:sessions] = :sessions
devise_for :admin_users, admin_devise_config
Теперь у меня установлен механизм Rails (Resque :: Server), который я хочу ограничить администраторами, используя ограничение маршрутизации, подобное этому в config/routes.rb
:
module RouteConstraint
class Admin
def self.matches?(request)
request.env['warden'].user && request.env['warden'].user.admin?
end
end
end
mount ResqueWeb::Engine, :at => "/resque", :constraints => RouteConstraint::Admin
Это раньше работало. Однако теперь, когда AdminUser вошел в ActiveAdmin, request.env['warden'].user
возвращает nil
, а request.env['warden'].authenticated?
возвращает false
.
Куда мне обратиться, чтобы проверить, прошел ли пользователь проверку подлинности с ActiveAdmin в этой конфигурации