2013-04-08 14 views
7

Sto cercando di installare Rack-mini-profiler sulla mia applicazione ROR. Ho installato la gemma e il profiler funziona benissimo nello sviluppo ma non riesco ad annullare l'autorizzazione di richieste specifiche per utenti non amministratori. ho messo il seguente codice nel mio ApplicationController before_filterPerché non riesco ad annullare l'autorizzazione di Rack-mini-profiler per utenti non amministratori

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 di debug ho visto che il metodo Rimuovi autorizzazione viene chiamato, ma è ancora visualizzato il profiler.

Ho anche provato utilizzando questo codice

def authorize_mini_profiler 
    Rack::MiniProfiler.deauthorize_request 
end 

ma ancora, ogni richiesta da qualsiasi utente visualizza profilatore.

Qualcuno sa quale potrebbe essere il problema?

risposta

15

Ebbene, per coloro che gestiscono lo stesso problema ...

Deeper debug ha rilevato che la gemma è configurato per ignorare il meccanismo di autorizzazione su init. Al fine di consentire il profiling solo in alcuni casi (ad esempio, non produzione o solo per gli utenti di amministrazione) è necessario sovrascrivere la configurazione predefinita in application.rb (o, preferibilmente, alcuni file di configurazione specifica):

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

altrimenti la configurazione è impostato su :allowall