首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能为非管理员用户取消授权Rack-mini-profiler

为什么我不能为非管理员用户取消授权Rack-mini-profiler
EN

Stack Overflow用户
提问于 2013-04-08 15:51:19
回答 1查看 1.1K关注 0票数 8

我正在尝试在ROR应用程序上安装Rack-mini-profiler。我安装了gem,分析器在开发中工作得很好,但我不能解除对非管理员用户的特定请求的授权。我在我的ApplicationController before_filter中放置了以下代码

代码语言:javascript
复制
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

在debug中,我看到deauthorize方法被调用,但分析器仍然显示。

我甚至试着使用下面的代码

代码语言:javascript
复制
def authorize_mini_profiler
    Rack::MiniProfiler.deauthorize_request
end

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

有没有人知道问题出在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-09 16:47:35

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

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

代码语言:javascript
复制
Rack::MiniProfiler.config.authorization_mode = :whitelist if Rails.env.production?

否则,配置将设置为:allowall

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15873939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档