2013-04-08 6 views
7

Ich versuche, Rack-Mini-Profiler auf meiner ROR-Anwendung zu installieren. Ich habe das Juwel installiert und der Profiler funktioniert großartig in der Entwicklung, aber ich kann bestimmte Anfragen für Nicht-Admin-Benutzer nicht deaktivieren. Ich legte den folgenden Code in meiner Application before_filterWarum kann ich Rack-Mini-Profiler für Nicht-Admin-Benutzer nicht deaktivieren

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 

In debug ich sah, dass die deautorisieren Methode aufgerufen wird, aber der Profiler wird weiterhin angezeigt.

Ich habe sogar versucht

def authorize_mini_profiler 
    Rack::MiniProfiler.deauthorize_request 
end 

aber immer noch diesen Code verwenden, zeigt jede Anforderung von jedem Benutzer des Profiler.

Weiß jemand, was das Problem sein könnte?

Antwort

15

Nun, für diejenigen, die in das gleiche Problem laufen ...

Deeper Debuggen festgestellt, dass der Edelstein für das Ignorieren des Autorisierungsmechanismus auf init konfiguriert ist. Um Profilierung zu ermöglichen, nur auf einigen Fällen (zB nicht die Produktion oder nur für den Admin-Benutzer) müssen Sie die Standardkonfiguration in application.rb (oder vorzugsweise einige spezifische Konfigurationsdatei) außer Kraft zu setzen:

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

sonst die Konfiguration festgelegt ist :allowall