devise_masquerade 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Devise Masquerade
2
2
 
3
+ [![Build Status](https://secure.travis-ci.org/oivoodoo/devise_masquerade.png?branch=master)](https://travis-ci.org/oivoodoo/devise_masquerade)
4
+
3
5
  It's a utility library for enabling functionallity like login as button for
4
6
  admin.
5
7
 
@@ -23,6 +25,44 @@ In the view you can use url helper for defining link:
23
25
 
24
26
  = link_to "Login As", masquerade_path(user)
25
27
 
28
+ Add into your application_controller.rb:
29
+
30
+ before_filter :masquerade_user!
31
+
32
+ Instead of user you can use your resource name admin, student or another names.
33
+
34
+ ## Custom controller for adding cancan for authorization
35
+
36
+ class Admin::MasqueradesController < Devise::MasqueradesController
37
+ def show
38
+ authorize!(:masquerade, User)
39
+
40
+ super
41
+ end
42
+ end
43
+
44
+ ## Custom url redirect after masquerade:
45
+
46
+ class Admin::MasqueradesController < Devise::MasqueradesController
47
+ def show
48
+ authorize!(:masquerade, User)
49
+
50
+ super
51
+ end
52
+
53
+ protected
54
+
55
+ def after_masquerade_path_for(resource)
56
+ "/custom_url"
57
+ end
58
+ end
59
+
60
+ ## You can redefine few options:
61
+
62
+ Devise.masquerade_param = 'masquerade'
63
+ Devise.masquerade_expires_in = 10.seconds
64
+ Devise.masquerade_key_size = 16 # size of the generate by SecureRandom.base64
65
+
26
66
  ## Contributing
27
67
 
28
68
  1. Fork it
@@ -8,7 +8,7 @@ class Devise::MasqueradesController < DeviseController
8
8
 
9
9
  self.resource.masquerade!
10
10
 
11
- redirect_to(after_masquerade_path_for(self.resource))
11
+ redirect_to("#{after_masquerade_path_for(self.resource)}?#{after_masquerade_param_for(resource)}")
12
12
  end
13
13
 
14
14
  private
@@ -18,7 +18,11 @@ class Devise::MasqueradesController < DeviseController
18
18
  end
19
19
 
20
20
  def after_masquerade_path_for(resource)
21
- "/?masquerade=#{resource.masquerade_key}"
21
+ "/"
22
+ end
23
+
24
+ def after_masquerade_param_for(resource)
25
+ "#{Devise.masquerade_param}=#{resource.masquerade_key}"
22
26
  end
23
27
  end
24
28
 
@@ -7,9 +7,9 @@ module Devise
7
7
  attr_reader :masquerade_key
8
8
 
9
9
  def masquerade!
10
- @masquerade_key = SecureRandom.base64(16)
10
+ @masquerade_key = SecureRandom.base64(Devise.masquerade_key_size)
11
11
 
12
- Rails.cache.write("#{self.class.name.pluralize.downcase}:#{@masquerade_key}:masquerade", id, :expires_in => 10.seconds)
12
+ Rails.cache.write("#{self.class.name.pluralize.downcase}:#{@masquerade_key}:masquerade", id, :expires_in => Devise.masquerade_expires_in)
13
13
  end
14
14
 
15
15
  def self.find_by_masquerade_key(key)
@@ -1,3 +1,3 @@
1
1
  module DeviseMasquerade
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -12,6 +12,15 @@ module DeviseMasquerade
12
12
  end
13
13
 
14
14
  module Devise
15
+ mattr_accessor :masquerade_param
16
+ @@masquerade_param = 'masquerade'
17
+
18
+ mattr_accessor :masquerade_expires_in
19
+ @@masquerade_expires_in = 10.seconds
20
+
21
+ mattr_accessor :masquerade_key_size
22
+ @@masquerade_key_size = 16
23
+
15
24
  @@helpers << DeviseMasquerade::Controllers::Helpers
16
25
  end
17
26
 
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.2
4
+ version: 0.0.3
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-19 00:00:00.000000000 Z
12
+ date: 2012-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler