Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何限制对rails\u管理面板的访问?_Ruby On Rails_Devise_Rails Admin - Fatal编程技术网

Ruby on rails 如何限制对rails\u管理面板的访问?

Ruby on rails 如何限制对rails\u管理面板的访问?,ruby-on-rails,devise,rails-admin,Ruby On Rails,Devise,Rails Admin,我有一个简单的应用程序,我使用Desive进行身份验证。我刚刚添加了rails\u admin gem 这将允许通过/admin路由轻松访问数据。我还补充了 RailsAdmin.config do |config| config.authenticate_with do warden.authenticate! scope: :admin end config.current_user_method(&:current_admin) end 要初始化,现在需要在

我有一个简单的应用程序,我使用Desive进行身份验证。我刚刚添加了rails\u admin gem

这将允许通过/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面板的权限限制为仅admin属性设置为true的用户


目前,任何用户都可以访问rails\u 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

好的,谢谢,这是一个完美的解决方案,我正在寻找它,@md farhan memon添加到Rails管理员wiki中,因为它不见了。