2012-11-13 48 views
5

Tôi đang sử dụng Devise cho mô hình Người dùng của mình. Tôi cũng đang sử dụng ActiveAdmin đang sử dụng Devise cho mô hình AdminUser.Đăng xuất Người dùng bằng Devise đang đăng xuất Người dùng quản trị cũng như

Tôi có thể đăng nhập bằng admin_user và người dùng độc lập với nhau, nhưng tôi đã nhận thấy nếu tôi đăng xuất Người dùng, Người dùng quản trị cũng sẽ đăng xuất. Điều tương tự cũng xảy ra nếu tôi đảo ngược nó và đăng xuất Người quản trị trước tiên.

Tôi có thể làm gì để hy vọng có được điều này?

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 

Trả lời

7

gì bạn đang tìm kiếm là một cấu hình lập mưu gọi sign_out_all_scopes

Khi người dùng đăng ra ngoài và nó được thiết lập là true, tất cả phạm vi được đăng xuất cho người dùng này, cả người dùng và quản trị viên trong trường hợp của bạn.

Trong devise.rb tìm kiếm sign_out_all_scopes và thay đổi giá trị thành true.

+1

Tôi nghĩ bạn có nghĩa là đặt nó thành sai. Vì true là giá trị mặc định. Khi bạn đặt giá trị thành 'false', nó sẽ chỉ đăng xuất phạm vi hiện tại. – jvanbaarsen

Các vấn đề liên quan