devise_masquerade 0.0.2 → 0.0.3
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/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
|
-
"
|
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
|