devise_masquerade 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.

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