2016-01-07 2 views
0

У меня есть существующее приложение Rails, у которого Devise/Pundit работает на модели User.Можете ли вы отключить Pundit с помощью Devise и Active Admin?

Я следовал:

How to get Active Admin to work with Pundit after login

https://gist.github.com/tomchentw/8579571

мне не нужно разрешение прямо сейчас - Придумайте для аутентификации будет делать. Могу ли я просто "turn off" Pundit для активного администратора?

UPDATE

Это супер обезьяна патч:

after_action :verify_policy_scoped, only: [:index] if controller_path.split('/').first == "admin" 

Это работает, но я не думаю, что это идеальный вариант.

ответ

0
config.authentication_method = false 
config.current_user_method = false 

В конфигурационных/инициализаторах/active_admin.rb

+0

Это отключает проверку подлинности - я хотел отключить авторизацию. Я говорю, что если AdminUser зарегистрирован, они авторизованы по умолчанию. –

0

Вы можете попробовать настроить адаптер авторизации

Настройки собственный AuthorizationAdapter легко! В следующем примере показано, как настроить и привязать свой класс адаптера авторизации к активному администратора:

# app/models/only_authors_authorization.rb 
class NotAdminAuthorization < ActiveAdmin::AuthorizationAdapter 

    def authorized?(action, subject = nil) 
    false 
    end 

end 

затем

config.authorization_adapter = "NotAdminAuthorization" 

и другой вы можете определить пространство имен тумблер

ActiveAdmin.setup do |config| 
    config.namespace :admin do |ns| 
    ns.authorization_adapter = "NotAdminAuthorization" 
    end 
    config.namespace :my_user do |ns| 
    ns.authorization_adapter = ActiveAdmin::PunditAdapter 
    end 
end 

Тогда как до

ActiveAdmin.register Post, namespace: :my_user 
+0

Это не работает. Я все еще получаю бесконечные ошибки в Pundit. Ошибки копирования и авторизации. –

+0

Вы определили пространство имен? используйте authorization_adapter = ActiveAdmin :: PunditAdapter для другого пользователя –

+0

Я смущен относительно того, что делает этот переключатель. Теперь у меня есть config.authorization_adapter = ActiveAdmin :: PunditAdapter. Каждая страница, на которую я перехожу в AA, приводит к: '' 'Pundit :: NotDefinedError at/admin/dashboard не удается найти политику' AdminUserPolicy' для '# '' '' –

Смежные вопросы