devise_masquerade 0.1.3 → 0.1.4
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 +8 -8
- data/.gitignore +3 -0
- data/lib/devise_masquerade/controllers/helpers.rb +2 -1
- data/lib/devise_masquerade/model.rb +2 -3
- data/lib/devise_masquerade/version.rb +1 -1
- data/spec/controllers/admin/dashboard_controller_spec.rb +19 -0
- data/spec/dummy/app/controllers/admin/dashboard_controller.rb +9 -0
- data/spec/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy/app/controllers/dashboard_controller.rb +1 -0
- data/spec/dummy/app/models/admin/user.rb +13 -0
- data/spec/dummy/app/models/admin.rb +6 -0
- data/spec/dummy/app/views/admin/dashboard/index.html.erb +3 -0
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/dummy/db/migrate/20140418160449_create_admin_users.rb +47 -0
- data/spec/dummy/db/schema.rb +19 -1
- data/spec/support/authentication.rb +9 -0
- data/spec/support/factories.rb +6 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZGE2YzU4NTA5NmVhZjFkMjA5YzM0ODZkMDBhZWI5OWU0MTkwYjI4NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWYyMmJlZGRiZjMwOTYwMDgxNGEwNGZiYjkxNDkxMDg0NzdkOGUwNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjkzYzMzZjczMDYzNzI1YzFmNDU0ODg4NTQ4ZWIzN2U0ODAxNzBiODMzNWM0
|
10
|
+
OGIwNWM4YTRlZTVkNWNkZDZlNTA0NTE4OTU5NDE5YTBiMjhiY2IzOWVjMzZk
|
11
|
+
NGNhYTRlODc2NzU0N2Q0OTY1NTQ4OTlmYmUwNmUwYjk1MmU2MzM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjY5NmVmMGM0M2JlYmRlMDY2MTBhMDRlM2Y0MTg2MDg1N2Y3NGU5ZGEwNDNh
|
14
|
+
YTYzNjI3Yjc2MWFhMjEzM2E2NTIyZWNmNGI5YjU1NDBhYjhmZDJkNzg3MTdk
|
15
|
+
MDZkZTIxYWZkNTU0YWFhOThhODY3OTgyNzQ2YWE5ZWFjYTc1MDA=
|
data/.gitignore
CHANGED
@@ -3,12 +3,13 @@ module DeviseMasquerade
|
|
3
3
|
module Helpers
|
4
4
|
def self.define_helpers(mapping)
|
5
5
|
name = mapping.name
|
6
|
+
class_name = mapping.class_name
|
6
7
|
|
7
8
|
class_eval <<-METHODS, __FILE__, __LINE__ + 1
|
8
9
|
def masquerade_#{name}!
|
9
10
|
return if params[:masquerade].blank?
|
10
11
|
|
11
|
-
#{name} = ::#{
|
12
|
+
#{name} = ::#{class_name}.find_by_masquerade_key(params[:masquerade])
|
12
13
|
|
13
14
|
sign_in(#{name}, :bypass => Devise.masquerade_bypass_warden_callback) if #{name}
|
14
15
|
end
|
@@ -13,14 +13,13 @@ module Devise
|
|
13
13
|
module InstanceMethods
|
14
14
|
def masquerade!
|
15
15
|
@masquerade_key = SecureRandom.urlsafe_base64(Devise.masquerade_key_size)
|
16
|
-
|
17
|
-
Rails.cache.write("#{self.class.name.pluralize.downcase}:#{@masquerade_key}:masquerade", id, :expires_in => Devise.masquerade_expires_in)
|
16
|
+
Rails.cache.write("#{self.class.name.pluralize.underscore}:#{@masquerade_key}:masquerade", id, :expires_in => Devise.masquerade_expires_in)
|
18
17
|
end
|
19
18
|
end
|
20
19
|
|
21
20
|
module ClassMethods
|
22
21
|
def cache_masquerade_key_by(key)
|
23
|
-
"#{self.name.pluralize.
|
22
|
+
"#{self.name.pluralize.underscore}:#{key}:masquerade"
|
24
23
|
end
|
25
24
|
|
26
25
|
def remove_masquerade_key!(key)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Admin::DashboardController do
|
4
|
+
context 'when logged in' do
|
5
|
+
before { admin_logged_in }
|
6
|
+
|
7
|
+
context 'and admin masquerade by user' do
|
8
|
+
let!(:user) { create(:admin_user) }
|
9
|
+
|
10
|
+
before do
|
11
|
+
user.masquerade!
|
12
|
+
get :index, :masquerade => user.masquerade_key
|
13
|
+
end
|
14
|
+
|
15
|
+
it { current_admin_user.reload.should == user }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Admin::User < ActiveRecord::Base
|
2
|
+
# Include default devise modules. Others available are:
|
3
|
+
# :token_authenticatable, :confirmable,
|
4
|
+
# :lockable, :timeoutable and :omniauthable
|
5
|
+
devise :database_authenticatable, :registerable,
|
6
|
+
:recoverable, :rememberable, :trackable, :validatable,
|
7
|
+
:masqueradable
|
8
|
+
|
9
|
+
# Setup accessible (or protected) attributes for your model
|
10
|
+
attr_accessible :email, :password, :password_confirmation, :remember_me
|
11
|
+
# attr_accessible :title, :body
|
12
|
+
end
|
13
|
+
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
class CreateAdminUsers < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table(:admin_users) do |t|
|
4
|
+
## Database authenticatable
|
5
|
+
t.string :email, :null => false, :default => ""
|
6
|
+
t.string :encrypted_password, :null => false, :default => ""
|
7
|
+
|
8
|
+
## Recoverable
|
9
|
+
t.string :reset_password_token
|
10
|
+
t.datetime :reset_password_sent_at
|
11
|
+
|
12
|
+
## Rememberable
|
13
|
+
t.datetime :remember_created_at
|
14
|
+
|
15
|
+
## Trackable
|
16
|
+
t.integer :sign_in_count, :default => 0
|
17
|
+
t.datetime :current_sign_in_at
|
18
|
+
t.datetime :last_sign_in_at
|
19
|
+
t.string :current_sign_in_ip
|
20
|
+
t.string :last_sign_in_ip
|
21
|
+
|
22
|
+
## Confirmable
|
23
|
+
# t.string :confirmation_token
|
24
|
+
# t.datetime :confirmed_at
|
25
|
+
# t.datetime :confirmation_sent_at
|
26
|
+
# t.string :unconfirmed_email # Only if using reconfirmable
|
27
|
+
|
28
|
+
## Lockable
|
29
|
+
# t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
|
30
|
+
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
31
|
+
# t.datetime :locked_at
|
32
|
+
|
33
|
+
## Token authenticatable
|
34
|
+
# t.string :authentication_token
|
35
|
+
|
36
|
+
|
37
|
+
t.timestamps
|
38
|
+
end
|
39
|
+
|
40
|
+
add_index :admin_users, :email, :unique => true
|
41
|
+
add_index :admin_users, :reset_password_token, :unique => true
|
42
|
+
# add_index :admin_users, :confirmation_token, :unique => true
|
43
|
+
# add_index :admin_users, :unlock_token, :unique => true
|
44
|
+
# add_index :admin_users, :authentication_token, :unique => true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,25 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20140418160449) do
|
15
|
+
|
16
|
+
create_table "admin_users", :force => true do |t|
|
17
|
+
t.string "email", :default => "", :null => false
|
18
|
+
t.string "encrypted_password", :default => "", :null => false
|
19
|
+
t.string "reset_password_token"
|
20
|
+
t.datetime "reset_password_sent_at"
|
21
|
+
t.datetime "remember_created_at"
|
22
|
+
t.integer "sign_in_count", :default => 0
|
23
|
+
t.datetime "current_sign_in_at"
|
24
|
+
t.datetime "last_sign_in_at"
|
25
|
+
t.string "current_sign_in_ip"
|
26
|
+
t.string "last_sign_in_ip"
|
27
|
+
t.datetime "created_at", :null => false
|
28
|
+
t.datetime "updated_at", :null => false
|
29
|
+
end
|
30
|
+
|
31
|
+
add_index "admin_users", ["email"], :name => "index_admin_users_on_email", :unique => true
|
32
|
+
add_index "admin_users", ["reset_password_token"], :name => "index_admin_users_on_reset_password_token", :unique => true
|
15
33
|
|
16
34
|
create_table "users", :force => true do |t|
|
17
35
|
t.string "email", :default => "", :null => false
|
@@ -7,5 +7,14 @@ module Authentication
|
|
7
7
|
def current_user
|
8
8
|
controller.send(:current_user)
|
9
9
|
end
|
10
|
+
|
11
|
+
def admin_logged_in
|
12
|
+
@admin_user ||= create(:admin_user)
|
13
|
+
sign_in(@admin_user)
|
14
|
+
end
|
15
|
+
|
16
|
+
def current_admin_user
|
17
|
+
controller.send(:current_admin_user)
|
18
|
+
end
|
10
19
|
end
|
11
20
|
|
data/spec/support/factories.rb
CHANGED
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.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandr Korsak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,13 +82,18 @@ files:
|
|
82
82
|
- lib/devise_masquerade/rails.rb
|
83
83
|
- lib/devise_masquerade/routes.rb
|
84
84
|
- lib/devise_masquerade/version.rb
|
85
|
+
- spec/controllers/admin/dashboard_controller_spec.rb
|
85
86
|
- spec/controllers/dashboard_controller_spec.rb
|
86
87
|
- spec/controllers/devise/masquerades_controller_spec.rb
|
87
88
|
- spec/dummy/Rakefile
|
89
|
+
- spec/dummy/app/controllers/admin/dashboard_controller.rb
|
88
90
|
- spec/dummy/app/controllers/application_controller.rb
|
89
91
|
- spec/dummy/app/controllers/dashboard_controller.rb
|
90
92
|
- spec/dummy/app/helpers/application_helper.rb
|
93
|
+
- spec/dummy/app/models/admin.rb
|
94
|
+
- spec/dummy/app/models/admin/user.rb
|
91
95
|
- spec/dummy/app/models/user.rb
|
96
|
+
- spec/dummy/app/views/admin/dashboard/index.html.erb
|
92
97
|
- spec/dummy/app/views/dashboard/index.html.erb
|
93
98
|
- spec/dummy/app/views/layouts/application.html.erb
|
94
99
|
- spec/dummy/app/views/users/_user.html.erb
|
@@ -110,6 +115,7 @@ files:
|
|
110
115
|
- spec/dummy/config/locales/en.yml
|
111
116
|
- spec/dummy/config/routes.rb
|
112
117
|
- spec/dummy/db/migrate/20121119085620_devise_create_users.rb
|
118
|
+
- spec/dummy/db/migrate/20140418160449_create_admin_users.rb
|
113
119
|
- spec/dummy/db/schema.rb
|
114
120
|
- spec/dummy/db/seeds.rb
|
115
121
|
- spec/dummy/public/.empty
|
@@ -148,13 +154,18 @@ test_files:
|
|
148
154
|
- features/step_definitions/auth_steps.rb
|
149
155
|
- features/step_definitions/back_steps.rb
|
150
156
|
- features/support/env.rb
|
157
|
+
- spec/controllers/admin/dashboard_controller_spec.rb
|
151
158
|
- spec/controllers/dashboard_controller_spec.rb
|
152
159
|
- spec/controllers/devise/masquerades_controller_spec.rb
|
153
160
|
- spec/dummy/Rakefile
|
161
|
+
- spec/dummy/app/controllers/admin/dashboard_controller.rb
|
154
162
|
- spec/dummy/app/controllers/application_controller.rb
|
155
163
|
- spec/dummy/app/controllers/dashboard_controller.rb
|
156
164
|
- spec/dummy/app/helpers/application_helper.rb
|
165
|
+
- spec/dummy/app/models/admin.rb
|
166
|
+
- spec/dummy/app/models/admin/user.rb
|
157
167
|
- spec/dummy/app/models/user.rb
|
168
|
+
- spec/dummy/app/views/admin/dashboard/index.html.erb
|
158
169
|
- spec/dummy/app/views/dashboard/index.html.erb
|
159
170
|
- spec/dummy/app/views/layouts/application.html.erb
|
160
171
|
- spec/dummy/app/views/users/_user.html.erb
|
@@ -176,6 +187,7 @@ test_files:
|
|
176
187
|
- spec/dummy/config/locales/en.yml
|
177
188
|
- spec/dummy/config/routes.rb
|
178
189
|
- spec/dummy/db/migrate/20121119085620_devise_create_users.rb
|
190
|
+
- spec/dummy/db/migrate/20140418160449_create_admin_users.rb
|
179
191
|
- spec/dummy/db/schema.rb
|
180
192
|
- spec/dummy/db/seeds.rb
|
181
193
|
- spec/dummy/public/.empty
|