Ho un'applicazione che richiede tre tipi di utente (utente, agente, amministratore) con accesso e che richiede diversi moduli di configurazione.Gestione di più di un tipo di accesso di accesso con 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
Inoltre questi utenti possono disporre di colonne aggiuntive in base al loro tipo. Quindi, voglio creare tabelle diverse in base al loro tipo.
A seconda delle mie esigenze, ho deciso di gestire AgentAdmin
e AdminUser
con ActiveAdmin con diversi spazi dei nomi (admin AdminUser
, agente per AgentAdmin
). Ho configurato authentication_method
, current_user_method
e logout_link_path
per entrambi questi spazi dei nomi come di seguito.
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
Ho il seguente codice nel mio routes.rb
:
devise_for :agent_admins, ActiveAdmin::Devise.config
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
Questo genera percorsi di accesso solo per admin_users
. Se si imposta config.default_namespace = :agent
nel file di configurazione active_admin.rb, viene generato il percorso di accesso per agent_admin
, ma non admin_users
.
Tutti gli altri percorsi ActiveAdmin vengono generati normalmente per entrambi gli spazi dei nomi.
Come posso risolvere, per generare entrambi i percorsi login
gestiti da activedmin
?