如何限制对 rails_admin 管理面板的访问?
How to restrict access to rails_admin admin panel?
我有一个简单的应用程序,我在其中使用设计进行身份验证。我刚刚添加了 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 属性 设置为 true 的用户。
目前任何用户都可以访问 rails_admin gem 提供的 /admin 面板。我怎样才能实现这个目标?感谢您的帮助!谢谢!
我建议您编写此自定义授权,因为您有一个 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
我有一个简单的应用程序,我在其中使用设计进行身份验证。我刚刚添加了 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 属性 设置为 true 的用户。
目前任何用户都可以访问 rails_admin gem 提供的 /admin 面板。我怎样才能实现这个目标?感谢您的帮助!谢谢!
我建议您编写此自定义授权,因为您有一个 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