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 +4 -4
- data/Makefile +14 -0
- data/app/controllers/devise/masquerades_controller.rb +30 -7
- data/lib/devise_masquerade/version.rb +1 -1
- data/lib/devise_masquerade.rb +10 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf92dd8ac9972b55c63ff7b7b45527dc6dbedecc
|
4
|
+
data.tar.gz: c844f06c0b9124705dff331aea2bae877b342587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbc8724e293c172038bd0ef62bcff064b9f206bf65f410f99cf49826a8d99d863c9098d87e1b0d1330a63bfe45ba626fa63fba3e627472e31bd0fd779b6b8a0b
|
7
|
+
data.tar.gz: 002b0d76daac1a263bf64d8d7512059475612e2df0e37e52a29b2a297760a2df62c33c54712289e262edeaebee1664a0d8fab1c4030f263538495284fb2ce776
|
data/Makefile
ADDED
@@ -18,9 +18,12 @@ class Devise::MasqueradesController < DeviseController
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def show
|
21
|
-
self.resource =
|
21
|
+
self.resource = masqueraded_resource_class.to_adapter.find_first(:id => params[:id])
|
22
22
|
|
23
|
-
|
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
|
-
|
54
|
+
masquerading_resource_class.to_adapter.find_first(:id => user_id)
|
52
55
|
else
|
53
|
-
send(:"current_#{
|
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_#{
|
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_#{
|
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_#{
|
137
|
+
"devise_masquerade_#{masqueraded_resource_name}".to_sym
|
115
138
|
end
|
116
139
|
end
|
data/lib/devise_masquerade.rb
CHANGED
@@ -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.
|
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-
|
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
|