10

Sto usando admin e admin aggiunto di recente, che ha creato una tabella separata di admin_users per mantenere gli amministratori.Salta prima del filtro con Active Admin

Tutto funziona correttamente con Active Admin quando tento di accedere e navigare. Tuttavia, il mio controller applicazione ha questo per gli utenti generici:.

before_filter :authenticate_user!, :except => [:show, :index] 

A causa di questo, quando all'interno l'interfaccia di amministrazione attiva, ogni volta che provo per modificare o eliminare qualsiasi cosa, mi chiede il login ho imparato che una skip_before_filter può essere utilizzato all'interno del controller in cui il filtro before_filter deve essere escluso, tuttavia Active Admin non ha un file controller nella cartella controller o in qualsiasi parte del mio progetto potrei guardare.

qualcuno può suggerire come rendere amministratore attivo ignorare l'applicazione beofre_filter che voglio applicare su tutti i client/utenti di fronte?

risposta

33

In config/initializers/active_admin.rb è possibile aggiungere il seguente:

config.skip_before_filter :authenticate_user! 

È inoltre possibile utilizzare il DSL fornito di modificare il controller ActiveAdmin: http://activeadmin.info/docs/8-custom-actions.html#modify_the_controller

+0

Perfetto! grazie – alik

+0

Per qualche motivo, la riga nel file degli inizializzatori non funziona per me. E non sono sicuro. . in quali file aggiungi il codice per modificare il controller ActiveAdmin? – John

+0

@John Assicurati di riavviare l'app dopo aver modificato l'inizializzatore e puoi utilizzare la DSL che modifica il controller all'interno dei file di definizione dell'amministratore (ad esempio app/admin/post.rb). – coreyward

3

non ho potuto ottenere @ soluzione coreyward a lavorare, ma la modifica config/application.rb secondo this Devise post e aggiungendo:

ActiveAdmin.register_page "Dashboard" do 
    controller do 
     skip_before_filter :name_of_filter_to_skip 
    end 

    # Other code 
end 

al admin/dashboard.rb ha fatto il trucco. Non ha funzionato solo modificando config/application.rb da solo. Assicurati di riavviare il tuo server!

+0

la documentazione dice che la fase di configurazione aggiunge la configurazione a tutti i controller RESOURCE, quindi la dashboard è apparentemente esclusa da quella lista ... andando direttamente in/admin/some_resouce salta ancora le cose per me ... quindi hai ragione, questo è necessario in aggiunta alla soluzione di coreyward – fringd

1

sia il corey che Sooie hanno ragione ... ma solo parzialmente, per fermare la coperta authorize_user! filtro dal interessano active_admin è necessario implementare entrambe le loro risposte ...

config/inizializzatori/active_admin.rb

config.skip_before_filter :authorize_user! 

app/admin/dashboard.rb

controller do 
    skip_before_filter :authorize_user! 
end 
+0

Perché dovresti implementarle entrambe? –

1

non potevo' t fare in modo che le soluzioni di @fringd e @coreyward funzionino su Rails4 (usando il ramo master di ActiveAdmin).

Così, ho spostato i metodi di filtro (ho due filtri: authorize_user! e check_user_status) ad una nuova preoccupazione, e incluso questo modulo creato nei controllori che aveva quei filtri (eccezione del ApplicationController, che dovrebbe rimanere pulito).

Quindi riavviato il server e risolto il problema.

+0

Puoi per favore aggiungere il codice a quelle che hai descritto – Besi