2012-11-13 5 views
5

Sto utilizzando Devise per il mio modello di utente. Sto anche usando ActiveAdmin che sta usando Devise anche per il modello AdminUser.La disconnessione dell'utente con Devise sta firmando anche AdminUser

Posso accedere utilizzando un utente admin_user e un utente indipendentemente l'uno dall'altro, ma ho notato che se disconnetto l'utente, anche AdminUser è disconnesso. La stessa cosa accade se la inverto e prima esci da AdminUser.

Cosa posso fare per spera di aggirare questo?

routes.rb

devise_for :admin_users, ActiveAdmin::Devise.config 
devise_for :users 
get "dashboard/home" 

ApplicationController

protected 

def after_sign_in_path_for(resource) 
    if resource.is_a?(User) 
    stored_location_for(:user) || dashboard_home_path 
    elsif resource.is_a?(AdminUser) 
    stored_location_for(:admin_user) || admin_root_path(resource) 
    end 
end 

risposta

7

Quello che state cercando è una configurazione Devise chiamato sign_out_all_scopes

Quando un utente fuori ed è impostata su true, tutti i gli ambiti sono firmati per questo utente, sia utente che amministratore nel tuo caso.

In devise.rb cercare sign_out_all_scopes e cambiarne il valore in vero.

+1

Penso che tu intenda impostarlo su falso. Poiché true è il valore predefinito. Quando si imposta il valore su 'false', verrà escluso solo l'ambito corrente. – jvanbaarsen