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