Oto kilka pomysłów:
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
# ...
http_basic_authenticate_with :name => "frodo", :password => "thering", :if => :admin_controller?
def admin_controller?
self.class < ActiveAdmin::BaseController
end
Lub wersja monkeypatching
# config/initializers/active_admin.rb
# somewhere outside the setup block
class ActiveAdmin::BaseController
http_basic_authenticate_with :name => "frodo", :password => "thering"
end
Jeśli chcesz tylko do ochrony określonych zasobów, można użyć bloku Kontroler:
# app/admin/users.rb
ActiveAdmin.register Users do
controller do
http_basic_authenticate_with :name => "frodo", :password => "thering"
end
# ...
end
Miałem nadzieję, że będę w stanie rozszerzyć kontroler w ten sposób w config/initializers/active_admin.rb
w blok konfiguracji, ale to nie dla mnie:
# app/admin/users.rb
ActiveAdmin.setup do |config|
config.controller do
http_basic_authenticate_with :name => "frodo", :password => "thering"
end
# ...
end
Możecie spróbować chociaż, jak to może być sprawa wersja ActiveAdmin (Mógłbym przysiąc, że widziałem, że udokumentowane gdzieś ...)
Powodzenia, mam nadzieję, że to pomoże.
UPDATE: Kilka więcej opcji:
nie zdawał sobie sprawy, że: before_filter w activeadmin config zajmuje blok.
# config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
# ...
config.before_filter do
authenticate_or_request_with_http_basic("Whatever") do |name, password|
name == "frodo" && password == "thering"
end
end
end
I ... jeszcze jeden pomysł. Brzmi jak nie są chętni na dodanie czegoś do application_controller, ale ta wersja nie jest uzależnione jak pierwszy powyżej:
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def authenticate_admin
authenticate_or_request_with_http_basic("Whatever") do |name, password|
name == "frodo" && password == "thering"
end
end
end
# config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
# ...
config.authentication_method = :authenticate_admin
end
hej, dzięki za wpisanie wszystkich dostępnych opcji! Pierwszy to taki, którego znałem, ale nie chciał zaimplementować za wszelką cenę (warunkowe filtrowanie jest do bani, jest również oceniane przez wszystkie otwarte działania). Drugi to miły kandydat. Trzeci nie jest dokładnie moim przypadkiem użycia.Czwarty jest tym, czego oczekiwałbym (aczkolwiek nie z tą składnią) do wdrożenia za każdym razem, gdy aktywny zespół administracyjny zdaje sobie sprawę, że nie wszystkie aplikacje railsowe potrzebują/potrzebują systemu uwierzytelniania. Myślę, że pójdę z twoją drugą sugestią i zgłoś się do ciebie, gdy tylko będę miał ocenę. Jeszcze raz! – ChuckE
@ChuckE: Wygląda na to, że druga opcja sprawdzi się dobrze. Właśnie dodałem kilka innych bazujących na 'authentication_method' i' before_filter'. Ten ostatni może być dobry, jeśli istnieje jakikolwiek inny sposób uwierzytelnienia dla administratorów ... Po ponownym przeanalizowaniu wszystkich tych informacji zdałem sobie sprawę, że podoba mi się pierwsza edycja (przy użyciu 'config.before_filter') Najlepiej. Powodzenia! –
Jestem również twoim zdaniem, rozwiązanie, które pozostaje w domyślnym aktywnym inicjatorze administracyjnym, wydaje się być zwycięzcą! – ChuckE