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
|
+
[](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
|
-
"
|
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(
|
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 =>
|
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)
|
data/lib/devise_masquerade.rb
CHANGED
@@ -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.
|
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-
|
12
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|