devise_masquerade 0.0.4 → 0.0.5
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 +6 -1
- data/Guardfile +6 -0
- data/app/controllers/devise/masquerades_controller.rb +1 -1
- data/config/environment.rb +2 -0
- data/features/back.feature +17 -0
- data/features/step_definitions/auth_steps.rb +11 -0
- data/features/step_definitions/back_steps.rb +24 -0
- data/features/support/env.rb +23 -0
- data/lib/devise_masquerade/controllers/helpers.rb +8 -0
- data/lib/devise_masquerade/controllers/url_helpers.rb +3 -2
- data/lib/devise_masquerade/model.rb +3 -0
- data/lib/devise_masquerade/routes.rb +3 -1
- data/lib/devise_masquerade/version.rb +1 -1
- data/spec/dummy/app/controllers/application_controller.rb +1 -0
- data/spec/dummy/app/controllers/dashboard_controller.rb +1 -1
- data/spec/dummy/app/views/dashboard/index.html.erb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -9
- data/spec/dummy/app/views/users/_user.html.erb +6 -0
- data/spec/dummy/public/.empty +0 -0
- data/spec/models/user_spec.rb +1 -0
- metadata +17 -2
data/Gemfile
CHANGED
@@ -12,11 +12,16 @@ group :test do
|
|
12
12
|
gem 'guard'
|
13
13
|
gem 'guard-rspec'
|
14
14
|
gem 'guard-bundler'
|
15
|
-
gem '
|
15
|
+
gem 'guard-cucumber'
|
16
16
|
gem 'rspec-rails'
|
17
17
|
gem 'shoulda'
|
18
18
|
gem 'rb-fsevent'
|
19
19
|
gem 'factory_girl_rails'
|
20
20
|
gem 'database_cleaner'
|
21
|
+
gem 'cucumber'
|
22
|
+
gem 'cucumber-rails'
|
23
|
+
gem 'capybara'
|
24
|
+
gem 'capybara-webkit'
|
25
|
+
gem 'launchy'
|
21
26
|
end
|
22
27
|
|
data/Guardfile
CHANGED
@@ -8,6 +8,12 @@ guard 'rspec', :cli => '--format documentation', :version => 2, :all_after_pass
|
|
8
8
|
watch('spec/spec_helper.rb') { "spec" }
|
9
9
|
end
|
10
10
|
|
11
|
+
guard 'cucumber',:all_after_pass => false do
|
12
|
+
watch(%r{^features/.+\.feature$})
|
13
|
+
watch(%r{^features/support/.+$}) { 'features' }
|
14
|
+
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
15
|
+
end
|
16
|
+
|
11
17
|
guard 'bundler' do
|
12
18
|
watch('Gemfile')
|
13
19
|
watch(/^.+\.gemspec/)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: Use back button for returning to the owner of the masquerade action.
|
2
|
+
In order to back to the owner user
|
3
|
+
As an masquerade user
|
4
|
+
I want to be able to press a simple button on the page
|
5
|
+
|
6
|
+
@devise
|
7
|
+
Scenario: Use back button
|
8
|
+
Given I logged in
|
9
|
+
And I have a user for masquerade
|
10
|
+
|
11
|
+
When I am on the users page
|
12
|
+
And I login as one user
|
13
|
+
Then I should be login as this user
|
14
|
+
|
15
|
+
When I press back masquerade button
|
16
|
+
Then I should be login as owner user
|
17
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Given /^I have a user for masquerade$/ do
|
2
|
+
@mask = create(:user)
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I am on the users page$/ do
|
6
|
+
visit '/'
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I login as one user$/ do
|
10
|
+
click_on "Login as"
|
11
|
+
end
|
12
|
+
|
13
|
+
Then /^I should be login as this user$/ do
|
14
|
+
find('.current_user').should have_content(@mask.email)
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I press back masquerade button$/ do
|
18
|
+
click_on "Back masquerade"
|
19
|
+
end
|
20
|
+
|
21
|
+
Then /^I should be login as owner user$/ do
|
22
|
+
find('.current_user').should have_content(@user.email)
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'cucumber/rails'
|
2
|
+
require 'factory_girl'
|
3
|
+
require 'database_cleaner'
|
4
|
+
|
5
|
+
Dir[File.join(File.dirname(__FILE__), '..', '..', "spec/support/*.rb")].each {|f| require f}
|
6
|
+
|
7
|
+
ENV["RAILS_ENV"] = "test"
|
8
|
+
|
9
|
+
Capybara.default_selector = :css
|
10
|
+
|
11
|
+
ActionController::Base.allow_rescue = false
|
12
|
+
|
13
|
+
World(FactoryGirl::Syntax::Methods)
|
14
|
+
|
15
|
+
begin
|
16
|
+
DatabaseCleaner.strategy = :transaction
|
17
|
+
rescue NameError
|
18
|
+
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
|
19
|
+
end
|
20
|
+
|
21
|
+
Cucumber::Rails::Database.javascript_strategy = :truncation
|
22
|
+
Capybara.javascript_driver = :webkit
|
23
|
+
|
@@ -12,7 +12,15 @@ module DeviseMasquerade
|
|
12
12
|
|
13
13
|
sign_in #{name} if #{name}
|
14
14
|
end
|
15
|
+
|
16
|
+
def #{name}_masquerade?
|
17
|
+
session[:"devise_masquerade_#{name}"].present?
|
18
|
+
end
|
15
19
|
METHODS
|
20
|
+
|
21
|
+
ActiveSupport.on_load(:action_controller) do
|
22
|
+
helper_method "#{name}_masquerade?"
|
23
|
+
end
|
16
24
|
end
|
17
25
|
end
|
18
26
|
end
|
@@ -6,8 +6,9 @@ module DeviseMasquerade
|
|
6
6
|
send("#{scope}_masquerade_path", resource)
|
7
7
|
end
|
8
8
|
|
9
|
-
def back_masquerade_path
|
10
|
-
|
9
|
+
def back_masquerade_path(resource)
|
10
|
+
scope = Devise::Mapping.find_scope!(resource)
|
11
|
+
send("back_#{scope}_masquerade_index_path")
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -15,6 +15,9 @@ module Devise
|
|
15
15
|
def self.find_by_masquerade_key(key)
|
16
16
|
id = Rails.cache.read("#{self.name.pluralize.downcase}:#{key}:masquerade")
|
17
17
|
|
18
|
+
# clean up the cached masquerade key value
|
19
|
+
Rails.cache.write("#{self.name.pluralize.downcase}:#{key}:masquerade", nil)
|
20
|
+
|
18
21
|
self.find_by_id(id)
|
19
22
|
end
|
20
23
|
end
|
@@ -4,9 +4,11 @@ module ActionDispatch::Routing
|
|
4
4
|
protected
|
5
5
|
|
6
6
|
def devise_masquerade(mapping, controllers)
|
7
|
-
resources :masquerade,
|
7
|
+
resources :masquerade,
|
8
|
+
:only => :show,
|
8
9
|
:path => mapping.path_names[:masquerade],
|
9
10
|
:controller => controllers[:masquerades] do
|
11
|
+
|
10
12
|
get :back, :on => :collection
|
11
13
|
end
|
12
14
|
end
|
@@ -1,14 +1,20 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
|
-
<head>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
</head>
|
9
|
-
<body>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<%= stylesheet_link_tag :all %>
|
6
|
+
<%= javascript_include_tag :defaults %>
|
7
|
+
<%= csrf_meta_tag %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<% if signed_in? %>
|
11
|
+
<h1 class='current_user'><%= current_user.email %></h1>
|
10
12
|
|
11
|
-
|
13
|
+
<% if user_masquerade? %>
|
14
|
+
<%= link_to "Back masquerade", back_masquerade_path(current_user) %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
12
17
|
|
13
|
-
|
18
|
+
<%= yield %>
|
19
|
+
</body>
|
14
20
|
</html>
|
File without changes
|
data/spec/models/user_spec.rb
CHANGED
@@ -16,6 +16,7 @@ describe User do
|
|
16
16
|
user.masquerade!
|
17
17
|
|
18
18
|
Rails.cache.should_receive(:read).with("users:#{user.masquerade_key}:masquerade").and_return(user.id)
|
19
|
+
Rails.cache.should_receive(:write).with("users:#{user.masquerade_key}:masquerade", nil)
|
19
20
|
|
20
21
|
new_user = User.find_by_masquerade_key(user.masquerade_key)
|
21
22
|
|
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.5
|
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: 2012-11-
|
12
|
+
date: 2012-11-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -76,7 +76,12 @@ files:
|
|
76
76
|
- README.md
|
77
77
|
- Rakefile
|
78
78
|
- app/controllers/devise/masquerades_controller.rb
|
79
|
+
- config/environment.rb
|
79
80
|
- devise_masquerade.gemspec
|
81
|
+
- features/back.feature
|
82
|
+
- features/step_definitions/auth_steps.rb
|
83
|
+
- features/step_definitions/back_steps.rb
|
84
|
+
- features/support/env.rb
|
80
85
|
- lib/devise_masquerade.rb
|
81
86
|
- lib/devise_masquerade/controllers/helpers.rb
|
82
87
|
- lib/devise_masquerade/controllers/url_helpers.rb
|
@@ -91,7 +96,9 @@ files:
|
|
91
96
|
- spec/dummy/app/controllers/dashboard_controller.rb
|
92
97
|
- spec/dummy/app/helpers/application_helper.rb
|
93
98
|
- spec/dummy/app/models/user.rb
|
99
|
+
- spec/dummy/app/views/dashboard/index.html.erb
|
94
100
|
- spec/dummy/app/views/layouts/application.html.erb
|
101
|
+
- spec/dummy/app/views/users/_user.html.erb
|
95
102
|
- spec/dummy/config.ru
|
96
103
|
- spec/dummy/config/application.rb
|
97
104
|
- spec/dummy/config/boot.rb
|
@@ -111,6 +118,7 @@ files:
|
|
111
118
|
- spec/dummy/config/routes.rb
|
112
119
|
- spec/dummy/db/migrate/20121119085620_devise_create_users.rb
|
113
120
|
- spec/dummy/db/schema.rb
|
121
|
+
- spec/dummy/public/.empty
|
114
122
|
- spec/dummy/script/rails
|
115
123
|
- spec/models/user_spec.rb
|
116
124
|
- spec/orm/active_record.rb
|
@@ -142,6 +150,10 @@ signing_key:
|
|
142
150
|
specification_version: 3
|
143
151
|
summary: use for login as functionallity on your admin users pages
|
144
152
|
test_files:
|
153
|
+
- features/back.feature
|
154
|
+
- features/step_definitions/auth_steps.rb
|
155
|
+
- features/step_definitions/back_steps.rb
|
156
|
+
- features/support/env.rb
|
145
157
|
- spec/controllers/dashboard_controller_spec.rb
|
146
158
|
- spec/controllers/devise/masquerades_controller_spec.rb
|
147
159
|
- spec/dummy/Rakefile
|
@@ -149,7 +161,9 @@ test_files:
|
|
149
161
|
- spec/dummy/app/controllers/dashboard_controller.rb
|
150
162
|
- spec/dummy/app/helpers/application_helper.rb
|
151
163
|
- spec/dummy/app/models/user.rb
|
164
|
+
- spec/dummy/app/views/dashboard/index.html.erb
|
152
165
|
- spec/dummy/app/views/layouts/application.html.erb
|
166
|
+
- spec/dummy/app/views/users/_user.html.erb
|
153
167
|
- spec/dummy/config.ru
|
154
168
|
- spec/dummy/config/application.rb
|
155
169
|
- spec/dummy/config/boot.rb
|
@@ -169,6 +183,7 @@ test_files:
|
|
169
183
|
- spec/dummy/config/routes.rb
|
170
184
|
- spec/dummy/db/migrate/20121119085620_devise_create_users.rb
|
171
185
|
- spec/dummy/db/schema.rb
|
186
|
+
- spec/dummy/public/.empty
|
172
187
|
- spec/dummy/script/rails
|
173
188
|
- spec/models/user_spec.rb
|
174
189
|
- spec/orm/active_record.rb
|