如何限制对 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