pretender 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,18 +1,19 @@
1
1
  # Pretender
2
2
 
3
- As an admin, there are times you want to see exactly what another user sees or take action on behalf of a user. Pretender provides the ability to login as another user **the right way**.
4
-
5
- What is the right way?
3
+ As an admin, there are times you want to see exactly what another user sees or take action on behalf of a user. Meet Pretender.
6
4
 
7
5
  - Easy to switch back and forth between roles
8
6
  - Minimal code changes
9
- - Plays nicely with auditing tools
7
+ - Plays nicely with auditing tools - **this is crucial**
10
8
 
11
9
  [Rock on](http://www.youtube.com/watch?v=SBjQ9tuuTJQ) :boom:
12
10
 
13
11
  Pretender is also flexible and lightweight - less than 40 lines of code :-)
14
12
 
15
- Pretender works with Rails 2.3 and above.
13
+ Pretender works with Rails 2.3+ and almost any authentication system.
14
+ (devise, authlogic, sorcery, and many more - it's agnostic)
15
+
16
+ [Battle-tested at Instacart](https://www.instacart.com)
16
17
 
17
18
  ## Get started
18
19
 
data/lib/pretender.rb CHANGED
@@ -14,9 +14,10 @@ module Pretender
14
14
  helper_method true_method
15
15
 
16
16
  define_method impersonated_method do
17
- # only try to fetch impersonation if impersonation_id exists
18
17
  if !instance_variable_get(impersonated_var)
19
- value = (session[session_key] && impersonate_with.call(session[session_key])) || send(true_method)
18
+ # only fetch impersonation if user is logged in and impersonation_id exists
19
+ true_resource = send(true_method)
20
+ value = (true_resource && session[session_key] && impersonate_with.call(session[session_key])) || true_resource
20
21
  instance_variable_set(impersonated_var, value) if value
21
22
  end
22
23
  instance_variable_get(impersonated_var)
@@ -1,3 +1,3 @@
1
1
  module Pretender
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/pretender.gemspec CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Pretender::VERSION
9
9
  spec.authors = ["Andrew Kane"]
10
10
  spec.email = ["acekane1@gmail.com"]
11
- spec.description = %q{The right way to login as another user}
12
- spec.summary = %q{What is the right way? Easy to switch back and forth between roles, minimal code changes, and plays nicely with auditing tools}
13
- spec.homepage = "https://github.com/ankane/pretender"
11
+ spec.description = %q{Simple, powerful user impersonation for Rails}
12
+ spec.summary = %q{Easy to switch back and forth between roles, minimal code changes, and plays nicely with auditing tools}
13
+ spec.homepage = "http://ankane.github.com/pretender/"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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-03-05 00:00:00.000000000 Z
12
+ date: 2013-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -43,7 +43,7 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
- description: The right way to login as another user
46
+ description: Simple, powerful user impersonation for Rails
47
47
  email:
48
48
  - acekane1@gmail.com
49
49
  executables: []
@@ -58,7 +58,7 @@ files:
58
58
  - lib/pretender.rb
59
59
  - lib/pretender/version.rb
60
60
  - pretender.gemspec
61
- homepage: https://github.com/ankane/pretender
61
+ homepage: http://ankane.github.com/pretender/
62
62
  licenses:
63
63
  - MIT
64
64
  post_install_message:
@@ -71,18 +71,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
71
  - - ! '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
+ segments:
75
+ - 0
76
+ hash: -122711431740665312
74
77
  required_rubygems_version: !ruby/object:Gem::Requirement
75
78
  none: false
76
79
  requirements:
77
80
  - - ! '>='
78
81
  - !ruby/object:Gem::Version
79
82
  version: '0'
83
+ segments:
84
+ - 0
85
+ hash: -122711431740665312
80
86
  requirements: []
81
87
  rubyforge_project:
82
88
  rubygems_version: 1.8.23
83
89
  signing_key:
84
90
  specification_version: 3
85
- summary: What is the right way? Easy to switch back and forth between roles, minimal
86
- code changes, and plays nicely with auditing tools
91
+ summary: Easy to switch back and forth between roles, minimal code changes, and plays
92
+ nicely with auditing tools
87
93
  test_files: []
88
- has_rdoc: