Реализация authlogic для rails_admin - PullRequest
2 голосов
/ 06 июня 2011

Я использую rails_admin, и мне очень понравилось. Единственная проблема заключается в том, что он связан с устройством для аутентификации, но все мое приложение реализует authlogic. Нет способа удалить устройство, чтобы я мог переключиться на мою существующую аутентификацию. Я погуглил, но не смог найти :( С уважением; Kshitiz

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Я не знаю, как удалить devise, похоже, это требование для установки rails_admin. Поэтому вам нужно установить его, даже если вы его не используете.

Но вы можете заставить rails_admin использовать authlogic для аутентификации и авторизации следующим образом.

  • В папке config / initializers создайте новый файл с именем rails_admin.rb
  • Поместите в файл следующее (обратите внимание, что я использовал nifty_generators, поэтому у меня есть несколько вспомогательных методов, таких как logged_in? и т. Д. Возможно, вам потребуется использовать эквивалентные методы в вашей настройке):
  • Теперь перезагрузите сервер!

Код:

RailsAdmin.authenticate_with{
  unless logged_in?
    session[:return_to] = request.url
    redirect_to login_url, :alert => "You must first log in or sign up before accessing this page."
  end
}

RailsAdmin.authorize_with{
  redirect_to root_path, :alert => "You are not authorized to access that page" unless current_user.admin? #or whatever you use for checking admins
}
0 голосов
/ 07 декабря 2011

Недавно познакомился с CanCan , и, мужик, это отличный интерфейс с правами доступа. В какой-то момент я хотел установить cancan, и хотя он крайне недокументирован, я наткнулся на этот запрос на отсылку rails_admin Райана Бейтса в моем поиске того же ответа. Я использовал это в качестве предлога для установки как CanCan, так и RailsAdmin и могу подтвердить, что, по крайней мере, до сих пор они очень хорошо сочетаются друг с другом.

Инструкции коммита немного устарели, поэтому вот что сработало для меня.

в вашем Gemfile

gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git'

в config/initializers/rails_admin.rb

RailsAdmin.config do |config|
  config.authorize_with :cancan
end

В ваших способностях:

can :access, :rails_admin
can :history

Вы, вероятно, уже знаете это, но для осторожности, в config/routes.rb

mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'

Наконец, если вы bundle install поступите следующим образом, это не поможет. Взломать, но лучше, чем альтернатива.

AUTHORIZATION_ADAPTER=cancan bundle install

В любом случае, вы можете не захотеть CanCan, но если вы это сделаете, вы, вероятно, будете рады, если эта работа поддерживается (хотя и не документирована).

...