devise_masquerade 0.1.3 → 0.1.4

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjM2NWJhYTU5ODRkMDcyZTVjYmQ0NmFlZWQxYTBiOGZmOTAxYThlYw==
4
+ ZGE2YzU4NTA5NmVhZjFkMjA5YzM0ODZkMDBhZWI5OWU0MTkwYjI4NQ==
5
5
  data.tar.gz: !binary |-
6
- OTE3MTFkYzgzNTliMzcwYWYwZDBkNWU3MGMwMmM1MjJlNDcxZjViMA==
6
+ NWYyMmJlZGRiZjMwOTYwMDgxNGEwNGZiYjkxNDkxMDg0NzdkOGUwNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGZlMGQxNGNjMDA1NzQzYjdjZDg5NDQwNmU1NzYyNzU4ZDNmYWUyY2FhNjQx
10
- MjM2ZDVmOTA3MmQ2YjBmM2ZiYjIxNDM4OTlmZDcyNzdkOThhMzFkZWQ4NjBm
11
- OGRhZGUwZWIwNzU3ZmZmNTQ4YTc1MjhlNzJkM2IzNjBlYmNhYzU=
9
+ ZjkzYzMzZjczMDYzNzI1YzFmNDU0ODg4NTQ4ZWIzN2U0ODAxNzBiODMzNWM0
10
+ OGIwNWM4YTRlZTVkNWNkZDZlNTA0NTE4OTU5NDE5YTBiMjhiY2IzOWVjMzZk
11
+ NGNhYTRlODc2NzU0N2Q0OTY1NTQ4OTlmYmUwNmUwYjk1MmU2MzM=
12
12
  data.tar.gz: !binary |-
13
- NDAyYjk3NWZjOTY5ZmJmOGQ1ZTgwNDM1ZDQyMTIzY2Y3MDM4ZWY0YjdmODg4
14
- NDM4YzE2NWVjYTRiMDM3MzZlMmFhN2UyYWU2NzAzN2M2MzlmMTJiYWY5OGFh
15
- ZTdmM2U2ODEzMmY5MTg2M2M0MTIwMzk5NWRjY2UzNDVhMzFlNDk=
13
+ YjY5NmVmMGM0M2JlYmRlMDY2MTBhMDRlM2Y0MTg2MDg1N2Y3NGU5ZGEwNDNh
14
+ YTYzNjI3Yjc2MWFhMjEzM2E2NTIyZWNmNGI5YjU1NDBhYjhmZDJkNzg3MTdk
15
+ MDZkZTIxYWZkNTU0YWFhOThhODY3OTgyNzQ2YWE5ZWFjYTc1MDA=
data/.gitignore CHANGED
@@ -17,3 +17,6 @@ test/version_tmp
17
17
  spec/dummy/log/*.log
18
18
  spec/dummy/db/*.sqlite3
19
19
  tmp
20
+ tags
21
+ .vimrc
22
+
@@ -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} = ::#{name.to_s.classify}.find_by_masquerade_key(params[:masquerade])
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.downcase}:#{key}:masquerade"
22
+ "#{self.name.pluralize.underscore}:#{key}:masquerade"
24
23
  end
25
24
 
26
25
  def remove_masquerade_key!(key)
@@ -1,3 +1,3 @@
1
1
  module DeviseMasquerade
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -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,9 @@
1
+ class Admin::DashboardController < ApplicationController
2
+ before_filter :authenticate_admin_user!
3
+ before_filter :masquerade_admin_user!
4
+
5
+ def index
6
+ @users = Admin::User.where("admin_users.id != ?", current_admin_user.id).all
7
+ end
8
+ end
9
+
@@ -1,7 +1,4 @@
1
1
  class ApplicationController < ActionController::Base
2
2
  protect_from_forgery
3
-
4
- before_filter :authenticate_user!
5
- before_filter :masquerade_user!
6
3
  end
7
4
 
@@ -1,4 +1,5 @@
1
1
  class DashboardController < ApplicationController
2
+ before_filter :authenticate_user!
2
3
  before_filter :masquerade_user!
3
4
 
4
5
  def index
@@ -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
+
@@ -0,0 +1,6 @@
1
+ module Admin
2
+ def self.table_name_prefix
3
+ 'admin_'
4
+ end
5
+ end
6
+
@@ -0,0 +1,3 @@
1
+ <h1>Users</h1>
2
+
3
+ <%= render @users %>
@@ -1,6 +1,11 @@
1
1
  Dummy::Application.routes.draw do
2
2
  devise_for :users
3
+ devise_for :admin_users, :class_name => 'Admin::User'
3
4
 
4
5
  root :to => 'dashboard#index'
6
+
7
+ namespace :admin do
8
+ root :to => 'dashboard#index'
9
+ end
5
10
  end
6
11
 
@@ -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
+
@@ -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 => 20121119085620) do
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
 
@@ -6,5 +6,11 @@ FactoryGirl.define do
6
6
  password 'password'
7
7
  password_confirmation 'password'
8
8
  end
9
+
10
+ factory :admin_user, :class => 'Admin::User' do
11
+ email
12
+ password 'password'
13
+ password_confirmation 'password'
14
+ end
9
15
  end
10
16
 
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.3
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-18 00:00:00.000000000 Z
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