rails_warden 0.3.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG ADDED
@@ -0,0 +1,3 @@
1
+ * 0.3.0
2
+ * [roman] Added `response` and `cookies` methods from Rails to the Strategy
3
+ environment.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.5.0
data/lib/rails_warden.rb CHANGED
@@ -11,13 +11,47 @@ module Warden::Mixins::Common
11
11
  # Gets the rails request object by default if it's available
12
12
  def request
13
13
  return @request if @request
14
- if env['action_controller.rescue.request']
14
+ if defined?(ActionDispatch::Request)
15
+ @request = ActionDispatch::Request.new(env)
16
+ elsif env['action_controller.rescue.request']
15
17
  @request = env['action_controller.rescue.request']
16
18
  else
17
19
  Rack::Request.new(env)
18
20
  end
19
21
  end
20
22
 
23
+ def response
24
+ return @response if @response
25
+ if env['action_controller.rescue.response']
26
+ @response = env['action_controller.rescue.response']
27
+ else
28
+ Rack::Response.new(env)
29
+ end
30
+ end
31
+
32
+ def cookies
33
+ unless defined?('ActionController::Cookies')
34
+ puts 'cookies was not defined'
35
+ return
36
+ end
37
+ @cookies ||= begin
38
+ # Duck typing...
39
+ controller = Struct.new(:request, :response) do
40
+ def self.helper_method(*args); end
41
+ end
42
+ controller.send(:include, ActionController::Cookies)
43
+ controller.new(self.request, self.response).send(:cookies)
44
+ end
45
+ end
46
+
47
+ def logger
48
+ unless defined?('Rails')
49
+ puts 'logger not defined'
50
+ return
51
+ end
52
+ Rails.logger
53
+ end
54
+
21
55
  def raw_session
22
56
  request.session
23
57
  end
@@ -29,18 +63,21 @@ module Warden::Mixins::Common
29
63
  end
30
64
 
31
65
  Warden::Manager.before_failure do |env, opts|
32
- env['warden'].request.params['action'] = RailsWarden.unauthenticated_action || "unauthenticated"
66
+ action = RailsWarden.unauthenticated_action || "unauthenticated"
67
+ if Rails.respond_to?(:version) && Rails.version >= "3"
68
+ env['action_dispatch.request.path_parameters'][:action] = action
69
+ else
70
+ env['warden'].request.params['action'] = action
71
+ end
33
72
  end
34
73
 
35
74
  # Rails needs the action to be passed in with the params
36
75
  Warden::Manager.before_failure do |env, opts|
37
- if request = env["action_controller.rescue.request"]
38
- request.params["action"] = RailsWarden.unauthenticated_action
39
- end
76
+ env['warden'].request.params["action"] = RailsWarden.unauthenticated_action
40
77
  end
41
78
 
42
79
 
43
- if defined?(Rails)
80
+ if !defined?(Rails::Railtie)
44
81
  Rails.configuration.after_initialize do
45
82
  class ActionController::Base
46
83
  include RailsWarden::Mixins::HelperMethods
@@ -51,6 +88,19 @@ if defined?(Rails)
51
88
  include RailsWarden::Mixins::HelperMethods
52
89
  end
53
90
  end
91
+ else
92
+ class RailsWarden::Railtie < Rails::Railtie
93
+ initializer :warden do
94
+ ActionController::Base.class_eval do
95
+ include RailsWarden::Mixins::HelperMethods
96
+ include RailsWarden::Mixins::ControllerOnlyMethods
97
+ end
98
+
99
+ module ApplicationHelper
100
+ include RailsWarden::Mixins::HelperMethods
101
+ end
102
+ end
103
+ end
54
104
  end
55
105
 
56
106
  class Warden::SessionSerializer
data/rails_warden.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rails_warden}
8
- s.version = "0.3.0"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Neighman"]
12
- s.date = %q{2010-01-22}
12
+ s.date = %q{2010-03-08}
13
13
  s.description = %q{A gem that provides authenitcation via the Warden framework}
14
14
  s.email = %q{has.sox@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".gitignore",
22
+ "CHANGELOG",
22
23
  "LICENSE",
23
24
  "README.textile",
24
25
  "Rakefile",
@@ -39,7 +40,7 @@ Gem::Specification.new do |s|
39
40
  s.rdoc_options = ["--charset=UTF-8"]
40
41
  s.require_paths = ["lib"]
41
42
  s.rubyforge_project = %q{warden}
42
- s.rubygems_version = %q{1.3.5}
43
+ s.rubygems_version = %q{1.3.6}
43
44
  s.summary = %q{A gem that provides authenitcation via the Warden framework}
44
45
  s.test_files = [
45
46
  "spec/controller_mixin_spec.rb",
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_warden
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 5
8
+ - 0
9
+ version: 0.5.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Daniel Neighman
@@ -9,7 +14,7 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-01-22 00:00:00 +11:00
17
+ date: 2010-03-08 00:00:00 +13:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
@@ -25,6 +30,7 @@ extra_rdoc_files:
25
30
  - TODO
26
31
  files:
27
32
  - .gitignore
33
+ - CHANGELOG
28
34
  - LICENSE
29
35
  - README.textile
30
36
  - Rakefile
@@ -53,18 +59,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
59
  requirements:
54
60
  - - ">="
55
61
  - !ruby/object:Gem::Version
62
+ segments:
63
+ - 0
56
64
  version: "0"
57
- version:
58
65
  required_rubygems_version: !ruby/object:Gem::Requirement
59
66
  requirements:
60
67
  - - ">="
61
68
  - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
62
71
  version: "0"
63
- version:
64
72
  requirements: []
65
73
 
66
74
  rubyforge_project: warden
67
- rubygems_version: 1.3.5
75
+ rubygems_version: 1.3.6
68
76
  signing_key:
69
77
  specification_version: 3
70
78
  summary: A gem that provides authenitcation via the Warden framework