10

Używam programisty i ostatnio dodałem aktywnego administratora, który utworzył oddzielną tabelę administratorów, aby zachować adminów.Pomiń przed filtrem za pomocą Active Admin

Wszystko działa dobrze z aktywnym administratorem, gdy próbuję się zalogować i przeglądać. Jednak mój kontroler aplikacja ma to dla zwykłych użytkowników.

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

Z tego powodu, gdy wewnątrz aktywnego interfejsu administratora, gdy próbuję edytować lub usunąć coś, prosi mnie, aby zalogować się dowiedziałem, że skip_before_filter może być użyty wewnątrz kontrolera, w którym należy wykluczyć filtr before_filter, jednak Active Admin nie ma pliku kontrolera w folderze controllers ani w żadnym innym miejscu w moim projekcie, który mógłbym wyglądać.

Czy ktoś może sugerować, jak sprawić, aby aktywny administrator zignorował aplikację beofre_filter, którą chcę zastosować wobec wszystkich klientów/użytkowników?

Odpowiedz

33

W config/initializers/active_admin.rb można dodać następujące:

config.skip_before_filter :authenticate_user! 

Można również użyć DSL dostarczonego modyfikować kontroler ActiveAdmin: http://activeadmin.info/docs/8-custom-actions.html#modify_the_controller

+0

Idealnie! dzięki – alik

+0

Z jakiegoś powodu linia w pliku inicjalizacyjnym nie działa dla mnie. I nie jestem pewien. . w jakich plikach dodajesz kod, aby zmodyfikować kontroler ActiveAdmin? – John

+0

@John Upewnij się, że uruchomiłeś ponownie aplikację po zmianie dowolnego inicjalizatora i możesz użyć DSL modyfikującej kontroler w plikach definicji administratora (np. App/admin/post.rb). – coreyward

3

nie mogłem @ rozwiązania coreyward do pracy, ale edytowanie config/application.rb zgodnie this Devise post i dodając:

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

    # Other code 
end 

do admin/dashboard.rb załatwiło sprawę. Nie działało to po prostu edycji config/application.rb sam. Pamiętaj, aby zrestartować serwer!

+0

Dokumentacja mówi, że krok konfiguracji dodaje konfigurację do wszystkich kontrolerów RESOURCE, więc pulpit jest najwyraźniej wyjątkiem od ta lista ... przechodząc bezpośrednio do/admin/some_resouce wciąż pomija dla mnie rzeczy ... więc masz rację, jest to potrzebne oprócz rozwiązania coreyward – fringd

1

zarówno rdzeń jak i Sooie mają rację ... ale tylko częściowo, aby zatrzymać swój koc autorize_user! filtr z wpływając active_admin trzeba zaimplementować zarówno z odpowiedziami ...

config/inicjalizatory/active_admin.rb

config.skip_before_filter :authorize_user! 

app/admin/dashboard.rb

controller do 
    skip_before_filter :authorize_user! 
end 
+0

Dlaczego powinieneś zaimplementować oba? –

1

Nie mogłem • spraw, aby rozwiązania @fringd i @coreyward działały na Rails4 (używając master master ActiveAdmin).

Tak, mam przeniósł metod filtracyjnych (mam dwa filtry: authorize_user! i check_user_status) do nowego koncernu i objęły ten utworzony moduł do kontrolerów, który miał te filtry (wyjątkiem ApplicationController, co powinno pozostają czyste).

Następnie zrestartowano serwer i problem został rozwiązany.

+0

Czy możesz dodać kod do tych, które opisałeś – Besi

Powiązane problemy