devise_masquerade 0.0.7 → 0.0.8
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.
- data/Gemfile +2 -2
- data/README.md +4 -0
- data/app/controllers/devise/masquerades_controller.rb +5 -2
- data/devise_masquerade.gemspec +1 -1
- data/lib/devise_masquerade/version.rb +1 -1
- data/spec/controllers/devise/masquerades_controller_spec.rb +6 -1
- data/spec/dummy/config/initializers/devise.rb +1 -0
- metadata +10 -4
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in devise_masquerade.gemspec
|
4
4
|
gemspec
|
@@ -17,7 +17,7 @@ group :test do
|
|
17
17
|
gem 'shoulda'
|
18
18
|
gem 'rb-fsevent'
|
19
19
|
gem 'factory_girl_rails'
|
20
|
-
gem 'database_cleaner'
|
20
|
+
gem 'database_cleaner', '< 1.1.0'
|
21
21
|
gem 'cucumber'
|
22
22
|
gem 'cucumber-rails'
|
23
23
|
gem 'capybara'
|
data/README.md
CHANGED
@@ -29,6 +29,10 @@ In the view you can use url helper for defining link:
|
|
29
29
|
|
30
30
|
= link_to "Login As", masquerade_path(user)
|
31
31
|
|
32
|
+
In the model you'll need to add the parameter :masqueradable to the existing comma separated values in the devise method:
|
33
|
+
|
34
|
+
devise :invitable, :confirmable, :database_authenticatable, :registerable, :masqueradable
|
35
|
+
|
32
36
|
Add into your application_controller.rb:
|
33
37
|
|
34
38
|
before_filter :masquerade_user!
|
@@ -2,6 +2,7 @@ class Devise::MasqueradesController < DeviseController
|
|
2
2
|
prepend_before_filter :authenticate_scope!
|
3
3
|
|
4
4
|
before_filter :save_masquerade_owner_session, :only => :show
|
5
|
+
after_filter :cleanup_masquerade_owner_session, :only => :back
|
5
6
|
|
6
7
|
def show
|
7
8
|
self.resource = resource_class.to_adapter.find_first(:id => params[:id])
|
@@ -16,8 +17,6 @@ class Devise::MasqueradesController < DeviseController
|
|
16
17
|
def back
|
17
18
|
owner_user = resource_class.to_adapter.find_first(:id => session[session_key])
|
18
19
|
|
19
|
-
session[session_key] = nil
|
20
|
-
|
21
20
|
sign_in owner_user
|
22
21
|
|
23
22
|
redirect_to '/'
|
@@ -41,6 +40,10 @@ class Devise::MasqueradesController < DeviseController
|
|
41
40
|
session[session_key] = send("current_#{resource_name}").id
|
42
41
|
end
|
43
42
|
|
43
|
+
def cleanup_masquerade_owner_session
|
44
|
+
session.delete(session_key)
|
45
|
+
end
|
46
|
+
|
44
47
|
def session_key
|
45
48
|
"devise_masquerade_#{resource_name}".to_sym
|
46
49
|
end
|
data/devise_masquerade.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
|
22
22
|
gem.add_development_dependency('bundler', '>= 1.1.0')
|
23
23
|
|
24
|
-
gem.add_runtime_dependency('railties', '
|
24
|
+
gem.add_runtime_dependency('railties', '>= 3.0')
|
25
25
|
gem.add_runtime_dependency('devise', '>= 2.1.0')
|
26
26
|
end
|
27
27
|
|
@@ -16,6 +16,7 @@ describe Devise::MasqueradesController do
|
|
16
16
|
get :show, :id => mask.to_param
|
17
17
|
end
|
18
18
|
|
19
|
+
it { session.keys.should include('devise_masquerade_user') }
|
19
20
|
it { should redirect_to("/?masquerade=secure_key") }
|
20
21
|
end
|
21
22
|
end
|
@@ -32,13 +33,17 @@ describe Devise::MasqueradesController do
|
|
32
33
|
context 'and masquerade user' do
|
33
34
|
let(:mask) { create(:user) }
|
34
35
|
|
35
|
-
before
|
36
|
+
before do
|
37
|
+
SecureRandom.should_receive(:base64).and_return("secure_key")
|
38
|
+
get :show, :id => mask.to_param
|
39
|
+
end
|
36
40
|
|
37
41
|
context 'and back' do
|
38
42
|
before { get :back }
|
39
43
|
|
40
44
|
it { should redirect_to(masquerade_page) }
|
41
45
|
it { current_user.reload.should == @user }
|
46
|
+
it { session.keys.should_not include('devise_masquerade_user') }
|
42
47
|
end
|
43
48
|
end
|
44
49
|
end
|
@@ -10,5 +10,6 @@ Devise.setup do |config|
|
|
10
10
|
config.reconfirmable = true
|
11
11
|
config.reset_password_within = 6.hours
|
12
12
|
config.sign_out_via = :delete
|
13
|
+
config.secret_key = 'a4d9ea637f061521f68da64f5f66bd01746ea66a93f284725ad13ff6b27a1dac4ffde6503259f9445299bf855abaa56054f6d1fec5a09346e7220ee777236bb8'
|
13
14
|
end
|
14
15
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_masquerade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '3.0'
|
38
38
|
type: :runtime
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '3.0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
@@ -139,12 +139,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
hash: -4505805506761439122
|
142
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
146
|
none: false
|
144
147
|
requirements:
|
145
148
|
- - ! '>='
|
146
149
|
- !ruby/object:Gem::Version
|
147
150
|
version: '0'
|
151
|
+
segments:
|
152
|
+
- 0
|
153
|
+
hash: -4505805506761439122
|
148
154
|
requirements: []
|
149
155
|
rubyforge_project:
|
150
156
|
rubygems_version: 1.8.25
|