我有一个简单的应用程序,我使用了设计进行身份验证。我刚刚添加了rails_admin gem
https://github.com/sferik/rails_admin
这样可以通过/ admin路径轻松访问数据。我还添加了
RailsAdmin.config do |config|
config.authenticate_with do
warden.authenticate! scope: :admin
end
config.current_user_method(&:current_admin)
end
到初始化程序,所以现在需要在访问/ admin之前进行身份验证。
但我还想要一个限制。我的用户模型中有一个admin属性。我只通过控制台更改admin属性。我想限制只有admin属性设置为true的用户访问/ admin面板。
目前,任何用户都可以访问rails_admin gem提供的/ admin面板。我怎样才能实现这一目标?我感谢任何帮助!谢谢!
答案 0 :(得分: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