warden 1.1.0 → 1.1.1
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.
- data/Gemfile.lock +1 -1
- data/History.rdoc +5 -0
- data/lib/warden/proxy.rb +20 -5
- data/lib/warden/version.rb +1 -1
- data/spec/helpers/request_helper.rb +1 -1
- data/spec/warden/proxy_spec.rb +57 -1
- data/warden.gemspec +1 -1
- metadata +7 -5
data/Gemfile.lock
CHANGED
data/History.rdoc
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
+
== Version 1.1.1 / 2012-02-16
|
2
|
+
* Allow run_callbacks as an option to set_user and user
|
3
|
+
|
1
4
|
== Version 1.1.0 / 2011-11-02
|
2
5
|
* Use the default scopes action when using a bare throw(:warden)
|
6
|
+
|
3
7
|
== Version 1.0.6
|
4
8
|
* Remove gem files from the packaged gem
|
9
|
+
|
5
10
|
== Version 1.0.3
|
6
11
|
* Do not renew session on user fetch
|
7
12
|
|
data/lib/warden/proxy.rb
CHANGED
@@ -144,7 +144,7 @@ module Warden
|
|
144
144
|
#
|
145
145
|
# Parameters:
|
146
146
|
# user - An object that has been setup to serialize into and out of the session.
|
147
|
-
# opts - An options hash. Use the :scope option to set the scope of the user, set the :store option to false to skip serializing into the session.
|
147
|
+
# opts - An options hash. Use the :scope option to set the scope of the user, set the :store option to false to skip serializing into the session, set the :run_callbacks to false to skip running the callbacks (the default is true).
|
148
148
|
#
|
149
149
|
# :api: public
|
150
150
|
def set_user(user, opts = {})
|
@@ -161,7 +161,9 @@ module Warden
|
|
161
161
|
session_serializer.store(user, scope)
|
162
162
|
end
|
163
163
|
|
164
|
-
|
164
|
+
run_callbacks = opts.fetch(:run_callbacks, true)
|
165
|
+
manager._run_callbacks(:after_set_user, user, self, opts) if run_callbacks
|
166
|
+
|
165
167
|
@users[scope]
|
166
168
|
end
|
167
169
|
|
@@ -176,11 +178,24 @@ module Warden
|
|
176
178
|
# # with scope
|
177
179
|
# env['warden'].user(:admin)
|
178
180
|
#
|
181
|
+
# # as a Hash
|
182
|
+
# env['warden'].user(:scope => :admin)
|
183
|
+
#
|
184
|
+
# # with default scope and run_callbacks option
|
185
|
+
# env['warden'].user(:run_callbacks => false)
|
186
|
+
#
|
187
|
+
# # with a scope and run_callbacks option
|
188
|
+
# env['warden'].user(:scope => :admin, :run_callbacks => true)
|
189
|
+
#
|
179
190
|
# :api: public
|
180
|
-
def user(
|
191
|
+
def user(argument = {})
|
192
|
+
opts = argument.is_a?(Hash) ? argument : { :scope => argument }
|
193
|
+
scope = (opts[:scope] ||= @config.default_scope)
|
194
|
+
|
181
195
|
@users[scope] ||= begin
|
182
196
|
user = session_serializer.fetch(scope)
|
183
|
-
|
197
|
+
opts[:event] = :fetch
|
198
|
+
set_user(user, opts) if user
|
184
199
|
end
|
185
200
|
end
|
186
201
|
|
@@ -323,6 +338,6 @@ module Warden
|
|
323
338
|
raise "Invalid strategy #{name}"
|
324
339
|
end
|
325
340
|
end
|
326
|
-
|
327
341
|
end # Proxy
|
342
|
+
|
328
343
|
end # Warden
|
data/lib/warden/version.rb
CHANGED
@@ -15,7 +15,7 @@ module Warden::Spec
|
|
15
15
|
opts[:failure_app] ||= failure_app
|
16
16
|
opts[:default_strategies] ||= [:password]
|
17
17
|
opts[:default_serializers] ||= [:session]
|
18
|
-
blk = opts[:configurator] ||
|
18
|
+
blk = opts[:configurator] || proc{}
|
19
19
|
|
20
20
|
Rack::Builder.new do
|
21
21
|
use opts[:session] || Warden::Spec::Helpers::Session
|
data/spec/warden/proxy_spec.rb
CHANGED
@@ -365,6 +365,33 @@ describe Warden::Proxy do
|
|
365
365
|
end
|
366
366
|
setup_rack(app).call(@env)
|
367
367
|
end
|
368
|
+
|
369
|
+
it "should not run the callbacks when :run_callbacks is false" do
|
370
|
+
app = lambda do |env|
|
371
|
+
env['warden'].manager.should_not_receive(:_run_callbacks)
|
372
|
+
env['warden'].authenticate(:run_callbacks => false, :scope => :pass)
|
373
|
+
valid_response
|
374
|
+
end
|
375
|
+
setup_rack(app).call(@env)
|
376
|
+
end
|
377
|
+
|
378
|
+
it "should run the callbacks when :run_callbacks is true" do
|
379
|
+
app = lambda do |env|
|
380
|
+
env['warden'].manager.should_receive(:_run_callbacks)
|
381
|
+
env['warden'].authenticate(:pass)
|
382
|
+
valid_response
|
383
|
+
end
|
384
|
+
setup_rack(app).call(@env)
|
385
|
+
end
|
386
|
+
|
387
|
+
it "should run the callbacks by default" do
|
388
|
+
app = lambda do |env|
|
389
|
+
env['warden'].manager.should_receive(:_run_callbacks)
|
390
|
+
env['warden'].authenticate(:pass)
|
391
|
+
valid_response
|
392
|
+
end
|
393
|
+
setup_rack(app).call(@env)
|
394
|
+
end
|
368
395
|
end
|
369
396
|
|
370
397
|
describe "get user" do
|
@@ -412,6 +439,35 @@ describe Warden::Proxy do
|
|
412
439
|
setup_rack(app).call(@env)
|
413
440
|
@env['warden.spec.strategies'].should_not include(:pass)
|
414
441
|
end
|
442
|
+
|
443
|
+
describe "run callback option" do
|
444
|
+
it "should not call run_callbacks when we pass a :run_callback => false" do
|
445
|
+
app = lambda do |env|
|
446
|
+
env['warden'].manager.should_not_receive(:_run_callbacks)
|
447
|
+
env['warden'].user(:run_callbacks => false)
|
448
|
+
valid_response
|
449
|
+
end
|
450
|
+
setup_rack(app).call(@env)
|
451
|
+
end
|
452
|
+
|
453
|
+
it "should call run_callbacks when we pass a :run_callback => true" do
|
454
|
+
app = lambda do |env|
|
455
|
+
env['warden'].manager.should_receive(:_run_callbacks)
|
456
|
+
env['warden'].user(:run_callbacks => true)
|
457
|
+
valid_response
|
458
|
+
end
|
459
|
+
setup_rack(app).call(@env)
|
460
|
+
end
|
461
|
+
|
462
|
+
it "should call run_callbacks by default" do
|
463
|
+
app = lambda do |env|
|
464
|
+
env['warden'].manager.should_receive(:_run_callbacks)
|
465
|
+
env['warden'].user
|
466
|
+
valid_response
|
467
|
+
end
|
468
|
+
setup_rack(app).call(@env)
|
469
|
+
end
|
470
|
+
end
|
415
471
|
end
|
416
472
|
end
|
417
473
|
|
@@ -900,4 +956,4 @@ describe "dynamic default_strategies" do
|
|
900
956
|
session['warden.user.baz.key'].should == "User"
|
901
957
|
end
|
902
958
|
end
|
903
|
-
end
|
959
|
+
end
|
data/warden.gemspec
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Neighman
|
@@ -15,7 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-07-27 00:00:00
|
18
|
+
date: 2011-07-27 00:00:00 +02:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rack
|
@@ -82,6 +83,7 @@ files:
|
|
82
83
|
- spec/warden/test/test_mode_spec.rb
|
83
84
|
- TODO.textile
|
84
85
|
- warden.gemspec
|
86
|
+
has_rdoc: true
|
85
87
|
homepage: http://github.com/hassox/warden
|
86
88
|
licenses: []
|
87
89
|
|
@@ -111,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
113
|
requirements: []
|
112
114
|
|
113
115
|
rubyforge_project: warden
|
114
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 1.5.3
|
115
117
|
signing_key:
|
116
118
|
specification_version: 3
|
117
119
|
summary: Rack middleware that provides authentication for rack applications
|