devise_masquerade 0.0.8 → 0.0.9

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.

data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.2"
4
3
  - "1.9.3"
5
4
 
@@ -1,26 +1,41 @@
1
1
  module Devise
2
2
  module Models
3
3
  module Masqueradable
4
- extend ActiveSupport::Concern
4
+ def self.included(base)
5
+ base.class_eval do
6
+ attr_reader :masquerade_key
5
7
 
6
- included do
7
- attr_reader :masquerade_key
8
+ include InstanceMethods
9
+ extend ClassMethods
10
+ end
11
+ end
8
12
 
13
+ module InstanceMethods
9
14
  def masquerade!
10
15
  @masquerade_key = SecureRandom.base64(Devise.masquerade_key_size)
11
16
 
12
17
  Rails.cache.write("#{self.class.name.pluralize.downcase}:#{@masquerade_key}:masquerade", id, :expires_in => Devise.masquerade_expires_in)
13
18
  end
19
+ end
20
+
21
+ module ClassMethods
22
+ def cache_masquerade_key_by(key)
23
+ "#{self.name.pluralize.downcase}:#{key}:masquerade"
24
+ end
25
+
26
+ def remove_masquerade_key!(key)
27
+ Rails.cache.delete(cache_masquerade_key_by(key))
28
+ end
14
29
 
15
- def self.find_by_masquerade_key(key)
16
- id = Rails.cache.read("#{self.name.pluralize.downcase}:#{key}:masquerade")
30
+ def find_by_masquerade_key(key)
31
+ id = Rails.cache.read(cache_masquerade_key_by(key))
17
32
 
18
33
  # clean up the cached masquerade key value
19
- Rails.cache.write("#{self.name.pluralize.downcase}:#{key}:masquerade", nil)
34
+ remove_masquerade_key!(key)
20
35
 
21
- self.find_by_id(id)
36
+ find_by_id(id)
22
37
  end
23
- end
38
+ end # ClassMethods
24
39
  end
25
40
  end
26
41
  end
@@ -1,3 +1,3 @@
1
1
  module DeviseMasquerade
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -6,8 +6,21 @@ describe User do
6
6
  describe '#masquerade!' do
7
7
  it 'should cache special key on masquerade' do
8
8
  SecureRandom.should_receive(:base64).with(16).and_return("secure_key")
9
+ user.masquerade!
10
+ end
11
+ end
9
12
 
13
+ describe '#remove_masquerade_key' do
14
+ before { SecureRandom.stub(:base64).and_return("secure_key") }
15
+
16
+ let(:key) { 'users:secure_key:masquerade' }
17
+
18
+ it 'should be possible to remove cached masquerade key' do
10
19
  user.masquerade!
20
+ expect(Rails.cache.exist?(key)).to be_true
21
+
22
+ User.remove_masquerade_key!('secure_key')
23
+ expect(Rails.cache.exist?(key)).to be_false
11
24
  end
12
25
  end
13
26
 
@@ -16,7 +29,7 @@ describe User do
16
29
  user.masquerade!
17
30
 
18
31
  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)
32
+ Rails.cache.should_receive(:delete).with("users:#{user.masquerade_key}:masquerade")
20
33
 
21
34
  new_user = User.find_by_masquerade_key(user.masquerade_key)
22
35
 
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.8
4
+ version: 0.0.9
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-10-03 00:00:00.000000000 Z
12
+ date: 2013-10-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -141,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
141
  version: '0'
142
142
  segments:
143
143
  - 0
144
- hash: -4505805506761439122
144
+ hash: 3658538405332268443
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  none: false
147
147
  requirements:
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  version: '0'
151
151
  segments:
152
152
  - 0
153
- hash: -4505805506761439122
153
+ hash: 3658538405332268443
154
154
  requirements: []
155
155
  rubyforge_project:
156
156
  rubygems_version: 1.8.25