2017-05-30 68 views
0

我有一個簡單的應用程序,我使用設計進行身份驗證。我剛纔說rails_admin寶石如何限制對rails_admin管理面板的訪問?

https://github.com/sferik/rails_admin

這將允許通過/管理途徑方便地訪問數據。我還添加了

RailsAdmin.config do |config| 
    config.authenticate_with do 
    warden.authenticate! scope: :admin 
    end 
    config.current_user_method(&:current_admin) 
end 

到初始值設定項,所以現在在訪問/ admin之前需要進行身份驗證。

但我想要一個更多的限制。我的用戶模型中有一個管理員屬性。我只能通過控制檯更改管理員屬性。我想限制/ admin面板的訪問權限爲admin屬性設置爲true的用戶。

當前任何用戶都可以訪問由rails_admin gem提供的/ admin面板。我怎樣才能達到這個目標?我感謝任何幫助!謝謝!

回答

1

我建議你,因爲你有一個管理領域boolean寫這個自定義授權..

config.authorize_with do |controller| 
    if current_user.nil? 
    redirect_to main_app.new_account_session_path, flash: {error: 'Please Login to Continue..'} 
    elsif !current_user.admin? 
    redirect_to main_app.root_path, flash: {error: 'You are not Admin bro!'} 
    end 
end 
+0

好,謝謝這並獲得成功https://github.com/sferik/rails_admin/wiki/Authorization – kofhearts