Class: Devise::MasqueradesController
- Inherits:
-
DeviseController
- Object
- DeviseController
- Devise::MasqueradesController
- Defined in:
- app/controllers/devise/masquerades_controller.rb
Instance Method Summary collapse
Instance Method Details
#back ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/controllers/devise/masquerades_controller.rb', line 42 def back user_id = session[session_key] owner_user = if user_id.present? masquerading_resource_class.to_adapter.find_first(:id => user_id) else send(:"current_#{masquerading_resource_name}") end if masquerading_resource_class != masqueraded_resource_class sign_out(send("current_#{masqueraded_resource_name}")) end masquerade_sign_in(owner_user) request.env["devise.skip_trackable"] = nil if Devise.masquerade_routes_back && Rails::VERSION::MAJOR == 5 # If using the masquerade_routes_back and Rails 5 redirect_back(fallback_location: after_back_masquerade_path_for(owner_user)) elsif Devise.masquerade_routes_back && request.env['HTTP_REFERER'].present? redirect_to :back else redirect_to after_back_masquerade_path_for(owner_user) end end |
#show ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/devise/masquerades_controller.rb', line 20 def show self.resource = find_resource unless self.resource flash[:error] = "#{masqueraded_resource_class} not found." redirect_to(new_user_session_path) and return end self.resource.masquerade! request.env["devise.skip_trackable"] = "1" masquerade_sign_in(self.resource) if Devise.masquerade_routes_back && Rails::VERSION::MAJOR == 5 redirect_back(fallback_location: after_masquerade_full_path_for(resource)) elsif Devise.masquerade_routes_back && request.env['HTTP_REFERER'].present? redirect_to :back else redirect_to(after_masquerade_full_path_for(resource)) end end |