2

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

4

2 回答 2

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
}
于 2011-06-16T08:46:36.153 回答
0

最近熟悉了CanCan,伙计,这是一个很棒的权限界面。我一直想在某个时候安装 cancan,尽管它非常无证,但我在寻找相同答案时偶然发现了 Ryan Bates 对 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按以下方式,它不会拉入设计!Hackish,但比替代方案更好。

AUTHORIZATION_ADAPTER=cancan bundle install

无论如何,您可能不想要 CanCan,但如果您这样做,您可能会很高兴以受支持(尽管未记录)的方式进行这项工作。

于 2011-12-07T04:47:05.977 回答