2012-11-13 15 views
5

मैं अपने उपयोगकर्ता मॉडल के लिए डेविस का उपयोग कर रहा हूं। मैं ActiveAdmin का भी उपयोग कर रहा हूं जो AdminUser मॉडल के लिए भी Devise का उपयोग कर रहा है।डेविस के साथ उपयोगकर्ता को साइन आउट करना AdminUser को भी साइन आउट कर रहा है

मैं एक admin_user और उपयोगकर्ता को स्वतंत्र रूप से एक दूसरे का उपयोग करके साइन इन कर सकता हूं, लेकिन मैंने देखा है कि अगर मैं उपयोगकर्ता से साइन आउट करता हूं, तो AdminUser भी साइन आउट हो जाता है। वही बात होती है यदि मैं इसे उलट देता हूं और पहले AdminUser को साइन आउट करता हूं।

उम्मीद है कि मैं इस बारे में उम्मीद कर सकता हूं?

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 

उत्तर

7

क्या आप देख रहे हैं एक वसीयत विन्यास कहा जाता है sign_out_all_scopes

उपयोगकर्ता द्वारा साइन आउट करने और इसे सही पर सेट किया जाता है, तो सभी इस मामले के लिए आपके उपयोगकर्ता में उपयोगकर्ता और व्यवस्थापक दोनों के लिए स्कोप साइन आउट हैं।

devise.rb में sign_out_all_scopes के लिए खोजें और इसके मान को सत्य में बदलें।

+1

मुझे लगता है कि आप इसे गलत पर सेट करना चाहते हैं। चूंकि सही डिफ़ॉल्ट मान है। जब आप मान को 'झूठी' पर सेट करते हैं तो यह केवल वर्तमान दायरे को साइन आउट करेगा। – jvanbaarsen

संबंधित मुद्दे