rails_admin 具有设计和单个管理员用户

rails_admin with devise and single admin user

我正在使用 Rails 5,rails_admin 并使用标准设计用户模型设置进行设计:

  config.authenticate_with do
    warden.authenticate! scope: :user
  end

  config.current_user_method(&:current_user)

我希望单个用户能够访问 /admin 区域。无需在用户模型中创建新的 "isAdmin" 属性,是否可以简单地告诉 rails_admin user.id=1 是唯一可以访问 /admin 区域的用户?

这对我有用。在 rails_admin.rb 中,我删除了设计配置并简单地检查 current_user.id 是否等于 1。

  config.authorize_with do
    if user_signed_in?
      redirect_to main_app.root_path unless current_user.id == 1
    else
      redirect_to main_app.root_path
    end
  end

这很简单,除非您是当前登录用户并且您的 ID == 1

,否则不会泄露 /admin 区域