devise_masquerade 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of devise_masquerade might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e76954d314e996519b2fd5d764bdca52f0b41113
4
- data.tar.gz: 335ebe4c5f2a43e78b5c12d3e1f49ebc2ad8148d
3
+ metadata.gz: bf92dd8ac9972b55c63ff7b7b45527dc6dbedecc
4
+ data.tar.gz: c844f06c0b9124705dff331aea2bae877b342587
5
5
  SHA512:
6
- metadata.gz: a11811add0e0af01eaf6a04dc0672e75362be284a4f00599002eeff51582065c7e4e0cac8d342453b31eeb4683f3563ae4fe0354e68ac77e7f1ec96a3fe7e697
7
- data.tar.gz: b1d1e49cd4847944c0efb59d2d65c894871387ceb332c26d5413fdc957efaa59a419d6882f7ef03187d15b2d9edd53dedc92634e52a7da9c5aba971ed49748a9
6
+ metadata.gz: bbc8724e293c172038bd0ef62bcff064b9f206bf65f410f99cf49826a8d99d863c9098d87e1b0d1330a63bfe45ba626fa63fba3e627472e31bd0fd779b6b8a0b
7
+ data.tar.gz: 002b0d76daac1a263bf64d8d7512059475612e2df0e37e52a29b2a297760a2df62c33c54712289e262edeaebee1664a0d8fab1c4030f263538495284fb2ce776
data/Makefile ADDED
@@ -0,0 +1,14 @@
1
+ setup:
2
+ cd spec/dummy && \
3
+ RAILS_ENV=test rake db:setup
4
+ .PHONY: setup
5
+
6
+ rspec:
7
+ bundle exec rspec
8
+ .PHONY: rspec
9
+
10
+ cucumber:
11
+ bundle exec cucumber
12
+ .PHONY: cucumber
13
+
14
+ test: setup rspec cucumber
@@ -18,9 +18,12 @@ class Devise::MasqueradesController < DeviseController
18
18
  end
19
19
 
20
20
  def show
21
- self.resource = resource_class.to_adapter.find_first(:id => params[:id])
21
+ self.resource = masqueraded_resource_class.to_adapter.find_first(:id => params[:id])
22
22
 
23
- redirect_to(new_user_session_path) and return unless self.resource
23
+ unless self.resource
24
+ flash[:error] = "#{masqueraded_resource_class} not found."
25
+ redirect_to(new_user_session_path) and return
26
+ end
24
27
 
25
28
  self.resource.masquerade!
26
29
  request.env["devise.skip_trackable"] = "1"
@@ -48,11 +51,15 @@ class Devise::MasqueradesController < DeviseController
48
51
  user_id = session[session_key]
49
52
 
50
53
  owner_user = if user_id.present?
51
- resource_class.to_adapter.find_first(:id => user_id)
54
+ masquerading_resource_class.to_adapter.find_first(:id => user_id)
52
55
  else
53
- send(:"current_#{resource_name}")
56
+ send(:"current_#{masquerading_resource_name}")
54
57
  end
55
58
 
59
+ if masquerading_resource_class != masqueraded_resource_class
60
+ sign_out(send("current_#{masqueraded_resource_name}"))
61
+ end
62
+
56
63
  if Devise.masquerade_bypass_warden_callback
57
64
  if respond_to?(:bypass_sign_in)
58
65
  bypass_sign_in(owner_user)
@@ -86,8 +93,24 @@ class Devise::MasqueradesController < DeviseController
86
93
 
87
94
  private
88
95
 
96
+ def masqueraded_resource_class
97
+ Devise.masqueraded_resource_class || resource_class
98
+ end
99
+
100
+ def masqueraded_resource_name
101
+ Devise.masqueraded_resource_name || resource_name
102
+ end
103
+
104
+ def masquerading_resource_class
105
+ Devise.masquerading_resource_class || resource_class
106
+ end
107
+
108
+ def masquerading_resource_name
109
+ Devise.masquerading_resource_name || resource_name
110
+ end
111
+
89
112
  def authenticate_scope!
90
- send(:"authenticate_#{resource_name}!", :force => true)
113
+ send(:"authenticate_#{masquerading_resource_name}!", :force => true)
91
114
  end
92
115
 
93
116
  def after_masquerade_path_for(resource)
@@ -103,7 +126,7 @@ class Devise::MasqueradesController < DeviseController
103
126
  end
104
127
 
105
128
  def save_masquerade_owner_session
106
- session[session_key] = send("current_#{resource_name}").id unless session.key? session_key
129
+ session[session_key] = send("current_#{masquerading_resource_name}").id unless session.key? session_key
107
130
  end
108
131
 
109
132
  def cleanup_masquerade_owner_session
@@ -111,6 +134,6 @@ class Devise::MasqueradesController < DeviseController
111
134
  end
112
135
 
113
136
  def session_key
114
- "devise_masquerade_#{resource_name}".to_sym
137
+ "devise_masquerade_#{masqueraded_resource_name}".to_sym
115
138
  end
116
139
  end
@@ -1,3 +1,3 @@
1
1
  module DeviseMasquerade
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -27,6 +27,16 @@ module Devise
27
27
  mattr_accessor :masquerade_routes_back
28
28
  @@masquerade_routes_back = false
29
29
 
30
+ mattr_accessor :masqueraded_resource_class
31
+
32
+ mattr_accessor :masqueraded_resource_name
33
+ @@masqueraded_resource_name = :user
34
+
35
+ mattr_accessor :masquerading_resource_class
36
+
37
+ mattr_accessor :masquerading_resource_name
38
+ @@masquerading_resource_name = :user
39
+
30
40
  @@helpers << DeviseMasquerade::Controllers::Helpers
31
41
  end
32
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_masquerade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandr Korsak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-03 00:00:00.000000000 Z
11
+ date: 2017-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,6 +67,7 @@ files:
67
67
  - Gemfile
68
68
  - Guardfile
69
69
  - LICENSE.txt
70
+ - Makefile
70
71
  - README.md
71
72
  - Rakefile
72
73
  - app/controllers/devise/masquerades_controller.rb