【问题标题】:How to restrict access to rails_admin admin panel?如何限制对 rails_admin 管理面板的访问?
【发布时间】:2017-05-30 02:58:47
【问题描述】:

我有一个简单的应用程序,我在其中使用了 devise 进行身份验证。我刚刚添加了 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 面板。我怎样才能实现这个目标?我很感激任何帮助!谢谢!

【问题讨论】:

    标签: ruby-on-rails devise rails-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
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2014-08-24
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多