Class: Devise::MasqueradesController

Inherits:
DeviseController
  • Object
show all
Defined in:
app/controllers/devise/masquerades_controller.rb

Instance Method Summary collapse

Instance Method Details

#backObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/devise/masquerades_controller.rb', line 40

def back
  unless send("#{masqueraded_resource_name}_masquerade?")
    resource = send("current_#{masqueraded_resource_name}")
    go_back(resource, path: after_back_masquerade_path_for(resource))
  else
    masqueradable_resource = send("current_#{masqueraded_resource_name}")

    unless send("#{masqueraded_resource_name}_signed_in?")
      head(401) and return
    end

    resource = find_owner_resource(masqueradable_resource)
    sign_out(send("current_#{masqueraded_resource_name}"))

    (resource)
    request.env['devise.skip_trackable'] = nil

    go_back(resource, path: after_back_masquerade_path_for(resource))

    cleanup_masquerade_owner_session(masqueradable_resource)
  end
end

#showObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/devise/masquerades_controller.rb', line 14

def show
  if send("#{masqueraded_resource_name}_masquerade?")
    resource = masquerading_current_user

    go_back(resource, path: after_masquerade_full_path_for(resource))
  else
    masqueradable_resource = find_masqueradable_resource

    save_masquerade_owner_session(masqueradable_resource)

    resource = masqueradable_resource
    sign_out(masquerading_current_user)

    unless resource
      flash[:error] = "#{masqueraded_resource_class} not found."
      redirect_to(new_user_session_path) and return
    end

    request.env['devise.skip_trackable'] = '1'

    (resource)

    go_back(resource, path: after_masquerade_full_path_for(resource))
  end
end