为rails_admin实现authlogic

时间:2011-06-06 05:35:38

标签: ruby-on-rails rails-admin

我正在使用rails_admin,我非常喜欢它。唯一的问题是它与设计认证相结合,但我的整个应用程序正在实现authlogic。       有没有办法删除设计,以便我可以切换到我现有的authlogic身份验证。我用谷歌搜索但找不到:( 问候; Kshitiz

2 个答案:

答案 0 :(得分:2)

我不知道删除设计,似乎是安装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
}

答案 1 :(得分:0)

最近熟悉了CanCan和man,这是一个很棒的权限界面。我一直想在某些时候安装cancan,虽然它没有文档记录,但在我寻找相同的答案时我偶然发现了this pull request to rails_admin by Ryan Bates。我以此为借口安装了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,但是如果你这样做,你可能会受到支持(尽管没有文档记录)的影响。