easy-rack-open-id 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{easy-rack-open-id}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sam Schenkman-Moore"]
12
- s.date = %q{2009-12-20}
12
+ s.date = %q{2009-12-30}
13
13
  s.description = %q{You supply OpenIDs, this keeps anyone but people with access to those ids from getting through. You don't even have to make a form. :)}
14
14
  s.email = %q{samsm@samsm.com}
15
15
  s.extra_rdoc_files = [
@@ -1,12 +1,12 @@
1
1
  class EasyRackOpenIDProcessing
2
-
2
+
3
3
  attr_accessor :env, :options
4
-
4
+
5
5
  def initialize(app, options ={})
6
6
  @app = app
7
7
  @options = options
8
8
  end
9
-
9
+
10
10
  def call(env)
11
11
  @env = env
12
12
  if logout_path == path
@@ -24,24 +24,24 @@ class EasyRackOpenIDProcessing
24
24
  open_id_login
25
25
  end
26
26
  end
27
-
27
+
28
28
  def asset?
29
29
  0 == path.index(asset_prefix)
30
30
  end
31
-
31
+
32
32
  def asset_prefix
33
33
  '/easy-rack-openid-assets'
34
34
  end
35
-
35
+
36
36
  def gem_public_path
37
37
  File.dirname(__FILE__) + '/../public/'
38
38
  end
39
-
39
+
40
40
  def open_id_login
41
41
  if resp = env["rack.openid.response"]
42
42
  case resp.status
43
43
  when :success
44
-
44
+
45
45
  # Load in any registration data gathered
46
46
  profile_data = {}
47
47
  # merge the SReg data and the AX data into a single hash of profile data
@@ -50,9 +50,8 @@ class EasyRackOpenIDProcessing
50
50
  profile_data.merge! data_response.from_success_response( resp ).data
51
51
  end
52
52
  end
53
-
53
+
54
54
  profile_data['identifier'] = resp.identity_url
55
- # require 'ruby-debug' ; debugger
56
55
  #... save id and registration and forward to ...
57
56
  self.verified_identity = profile_data
58
57
  forward_to(protected_path)
@@ -72,11 +71,11 @@ class EasyRackOpenIDProcessing
72
71
  end
73
72
  end
74
73
  end
75
-
74
+
76
75
  def path
77
76
  env['REQUEST_PATH']
78
77
  end
79
-
78
+
80
79
  def present_login_options
81
80
  if login_path
82
81
  forward_to(login_path)
@@ -93,11 +92,11 @@ class EasyRackOpenIDProcessing
93
92
  ok(form)
94
93
  end
95
94
  end
96
-
95
+
97
96
  def forward_to(url)
98
97
  [302, {'Location' => url}, ["Forwarding to #{url}"]]
99
98
  end
100
-
99
+
101
100
  def allowed?
102
101
  if allowed_identifiers
103
102
  allowed_identifiers.include? verified_identifier
@@ -107,34 +106,34 @@ class EasyRackOpenIDProcessing
107
106
  verified_identifier
108
107
  end
109
108
  end
110
-
109
+
111
110
  def identity_match
112
111
  options[:identity_match]
113
112
  end
114
-
113
+
115
114
  def allowed_identifiers
116
115
  options[:allowed_identifiers]
117
116
  end
118
-
117
+
119
118
  def logout_path
120
119
  options[:logout_path] || '/logout'
121
120
  end
122
-
121
+
123
122
  def logout
124
123
  self.verified_identity = nil
125
124
  if after_logout_path
126
125
  forward_to(after_logout_path)
127
126
  end
128
127
  end
129
-
128
+
130
129
  def after_logout_path
131
130
  options[:after_logout_path]
132
131
  end
133
-
132
+
134
133
  def login_path
135
134
  options[:login_path]
136
135
  end
137
-
136
+
138
137
  def identitifier_to_verify
139
138
  @identitifier_to_verify ||=
140
139
  if env["rack.request.query_hash"] && env["rack.request.query_hash"]["openid_identifier"]
@@ -149,7 +148,7 @@ class EasyRackOpenIDProcessing
149
148
  end
150
149
  end
151
150
  end
152
-
151
+
153
152
  def valid_identifier?
154
153
  uri = URI.parse(identitifier_to_verify.to_s.strip)
155
154
  uri = URI.parse("http://#{uri}") unless uri.scheme
@@ -159,35 +158,35 @@ class EasyRackOpenIDProcessing
159
158
  # raise InvalidOpenId.new("#{url} is not an OpenID URL")
160
159
  false
161
160
  end
162
-
161
+
163
162
  def verified_identity=(hash)
164
163
  session['verified_identity'] = hash
165
164
  end
166
-
165
+
167
166
  def verified_identity
168
167
  session['verified_identity']
169
168
  end
170
-
169
+
171
170
  def verified_identifier
172
171
  verified_identity && verified_identity['identifier']
173
172
  end
174
-
173
+
175
174
  def session
176
175
  env['rack.session']
177
176
  end
178
-
177
+
179
178
  def protected_path=(path)
180
179
  session['return_to'] = path
181
180
  end
182
-
181
+
183
182
  def protected_path
184
183
  session['return_to'] || default_return_to
185
184
  end
186
-
185
+
187
186
  def default_return_to
188
187
  options[:default_return_to] || '/'
189
188
  end
190
-
189
+
191
190
  def ok(text, content_type = 'text/html')
192
191
  [200,{"Content-Type" => content_type, 'Content-Length'=> text.length},[text]]
193
192
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy-rack-open-id
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Schenkman-Moore
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-20 00:00:00 -05:00
12
+ date: 2009-12-30 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency