Ich habe eine Anwendung erfordert drei User-Typen (Benutzer, Agent, Admin) mit Login und erfordern verschiedene Geräte-Module.Umgang mit mehr als einem Admin-Typ Login mit ActiveAdmin
User AgentAdmin AdminUser
confirmable Yes Yes No
lockable Yes Yes No
timeoutable No Yes Yes
Omniauthable Yes No No
database_authenticatable Yes Yes Yes
recoverable Yes Yes No
rememberable Yes Yes No
trackable Yes Yes Yes
validatable Yes Yes Yes
Weitere diese Benutzer möglicherweise zusätzliche Spalten basierend auf ihrem Typ. Daher möchte ich verschiedene Tabellen basierend auf ihrem Typ erstellen.
Je nach meinen Anforderungen, entschied ich mich (für AdminUser
, Mittel für AgentAdmin
admin) AgentAdmin
und AdminUser
mit ActiveAdmin mit unterschiedlichen Namensräumen zu behandeln. Ich habe authentication_method
, current_user_method
und logout_link_path
für diese Namespaces wie folgt konfiguriert.
config.load_paths = [File.join(Rails.root,'app','admin'), File.join(Rails.root,'app','agent')]
config.namespace :admin do |admin|
admin.authentication_method = :authenticate_admin_user!
admin.current_user_method = :current_admin_user
admin.logout_link_path = :destroy_admin_user_session_path
end
config.namespace :agent do |agent|
agent.authentication_method = :authenticate_agent_admin!
agent.current_user_method = :current_agent_admin
agent.logout_link_path = :destroy_agent_admin_session_path
end
Ich habe den folgenden Code in meinem routes.rb
:
devise_for :agent_admins, ActiveAdmin::Devise.config
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
Diese für admin_users
nur Login Pfade erzeugt. Wenn ich config.default_namespace = :agent
in der Konfigurationsdatei active_admin.rb festlege, wird der Anmeldepfad für agent_admin
generiert, aber nicht admin_users
.
Alle anderen ActiveAdmin-Pfade werden normalerweise für beide Namespaces generiert.
Wie kann ich lösen, um beide login
Pfade zu erzeugen, die von activedmin
behandelt werden?