【问题标题】:Why can't I deauthorize Rack-mini-profiler for non admin users为什么我不能为非管理员用户取消授权 Rack-mini-profiler
【发布时间】:2013-04-08 07:51:19
【问题描述】:

我正在尝试在我的 ROR 应用程序上安装 Rack-mini-profiler。 我安装了 gem 并且探查器在开发中运行良好,但我无法取消对非管理员用户的特定请求的授权。 我在我的 ApplicationController before_filter 中放置了以下代码

def authorize_mini_profiler
    if current_user.nil?
      Rack::MiniProfiler.deauthorize_request
      return
    elsif is_admin_user
      Rack::MiniProfiler.authorize_request
      return
    end
    Rack::MiniProfiler.deauthorize_request
end

在调试中,我看到调用了 deauthorize 方法,但仍显示探查器。

我什至尝试过使用此代码

def authorize_mini_profiler
    Rack::MiniProfiler.deauthorize_request
end

但是,任何用户的每个请求都会显示分析器。

有谁知道可能是什么问题?

【问题讨论】:

    标签: ruby-on-rails ruby rubygems rack-mini-profiler


    【解决方案1】:

    好吧,对于那些遇到同样问题的人......

    深入调试发现 gem 被配置为忽略 init 上的授权机制。为了仅在某些情况下启用分析(例如,非生产或仅适用于管理员用户),您需要覆盖 application.rb 中的默认配置(或者最好是一些特定的配置文件):

    Rack::MiniProfiler.config.authorization_mode = :whitelist if Rails.env.production?
    

    否则配置设置为:allowall

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      相关资源
      最近更新 更多