2011-06-06 68 views
2

我正在使用rails_admin,我非常喜歡它。唯一的問題是它與驗證設計耦合,但我的整個應用程序正在執行authlogic。 是不是有任何方法可以刪除設計,以便我可以切換到我現有的authlogic身份驗證。我GOOGLE了它,但無法找到:( 問候; Kshitiz爲rails_admin實現authlogic

回答

2

我不知道要消除設計,這似乎是安裝rails_admin的要求所以,你需要安裝它,即使你不知道。使用它。

但是你可以使用rails_admin爲authlogic身份驗證和授權,像這樣。

  • 在你的config /初始化文件夾中創建一個新的文件調用rails_admin.rb
  • 把裏面的下面文件(注意我使用了nifty_genera因此我有一些輔助方法可用於我,例如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

最近熟悉了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 

不管怎麼說,你可能不希望慘慘,但如果這樣做,你可能會激起對有支持(儘管未公開)的方式這項工作。