devise_cas_authenticatable 1.0.0.alpha8 → 1.0.0.alpha10

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 CHANGED
@@ -1,7 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gemspec
4
-
5
3
  gem 'devise'
6
4
 
7
5
  group :development do
data/Gemfile.lock CHANGED
@@ -14,15 +14,6 @@ GIT
14
14
  sinatra (~> 1.0)
15
15
  sqlite3 (~> 1.3.1)
16
16
 
17
- PATH
18
- remote: .
19
- specs:
20
- devise_cas_authenticatable (1.0.0.alpha7)
21
- devise (>= 1.0.6)
22
- devise
23
- devise_cas_authenticatable
24
- rubycas-client (>= 2.2.1)
25
-
26
17
  GEM
27
18
  remote: http://rubygems.org/
28
19
  specs:
@@ -143,8 +134,6 @@ GEM
143
134
  ruby-debug-base (0.10.4)
144
135
  linecache (>= 0.3)
145
136
  ruby-net-ldap (0.0.4)
146
- rubycas-client (2.2.1)
147
- activesupport
148
137
  rubyzip (0.9.4)
149
138
  selenium-webdriver (0.1.2)
150
139
  childprocess (~> 0.1.5)
@@ -178,7 +167,6 @@ DEPENDENCIES
178
167
  castronaut!
179
168
  crypt-isaac
180
169
  devise
181
- devise_cas_authenticatable!
182
170
  jeweler
183
171
  launchy
184
172
  mocha
data/Rakefile CHANGED
@@ -34,7 +34,7 @@ begin
34
34
  gemspec.add_runtime_dependency "devise", ">= 1.0.6"
35
35
  gemspec.add_runtime_dependency "rubycas-client", ">= 2.2.1"
36
36
  end
37
- Jeweler::GemcutterTasks.new
37
+ Jeweler::RubygemsDotOrgTasks.new
38
38
  rescue LoadError
39
39
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
40
40
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.alpha8
1
+ 1.0.0.alpha10
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{devise_cas_authenticatable}
8
- s.version = "1.0.0.alpha8"
8
+ s.version = "1.0.0.alpha10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nat Budin"]
12
- s.date = %q{2011-05-11}
12
+ s.date = %q{2011-06-08}
13
13
  s.description = %q{CAS authentication module for Devise}
14
14
  s.email = %q{natbudin@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -95,43 +95,22 @@ Gem::Specification.new do |s|
95
95
  s.specification_version = 3
96
96
 
97
97
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
98
- s.add_runtime_dependency(%q<devise_cas_authenticatable>, [">= 0"])
99
98
  s.add_runtime_dependency(%q<devise>, [">= 0"])
100
99
  s.add_development_dependency(%q<ruby-debug>, [">= 0"])
101
100
  s.add_development_dependency(%q<jeweler>, [">= 0"])
102
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
103
- s.add_development_dependency(%q<jeweler>, [">= 0"])
104
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
105
- s.add_development_dependency(%q<jeweler>, [">= 0"])
106
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
107
- s.add_development_dependency(%q<jeweler>, [">= 0"])
108
101
  s.add_runtime_dependency(%q<devise>, [">= 1.0.6"])
109
102
  s.add_runtime_dependency(%q<rubycas-client>, [">= 2.2.1"])
110
103
  else
111
- s.add_dependency(%q<devise_cas_authenticatable>, [">= 0"])
112
104
  s.add_dependency(%q<devise>, [">= 0"])
113
105
  s.add_dependency(%q<ruby-debug>, [">= 0"])
114
106
  s.add_dependency(%q<jeweler>, [">= 0"])
115
- s.add_dependency(%q<ruby-debug>, [">= 0"])
116
- s.add_dependency(%q<jeweler>, [">= 0"])
117
- s.add_dependency(%q<ruby-debug>, [">= 0"])
118
- s.add_dependency(%q<jeweler>, [">= 0"])
119
- s.add_dependency(%q<ruby-debug>, [">= 0"])
120
- s.add_dependency(%q<jeweler>, [">= 0"])
121
107
  s.add_dependency(%q<devise>, [">= 1.0.6"])
122
108
  s.add_dependency(%q<rubycas-client>, [">= 2.2.1"])
123
109
  end
124
110
  else
125
- s.add_dependency(%q<devise_cas_authenticatable>, [">= 0"])
126
111
  s.add_dependency(%q<devise>, [">= 0"])
127
112
  s.add_dependency(%q<ruby-debug>, [">= 0"])
128
113
  s.add_dependency(%q<jeweler>, [">= 0"])
129
- s.add_dependency(%q<ruby-debug>, [">= 0"])
130
- s.add_dependency(%q<jeweler>, [">= 0"])
131
- s.add_dependency(%q<ruby-debug>, [">= 0"])
132
- s.add_dependency(%q<jeweler>, [">= 0"])
133
- s.add_dependency(%q<ruby-debug>, [">= 0"])
134
- s.add_dependency(%q<jeweler>, [">= 0"])
135
114
  s.add_dependency(%q<devise>, [">= 1.0.6"])
136
115
  s.add_dependency(%q<rubycas-client>, [">= 2.2.1"])
137
116
  end
@@ -19,7 +19,7 @@ module Devise
19
19
  ::Devise.cas_client.validate_service_ticket(ticket) unless ticket.has_been_validated?
20
20
 
21
21
  if ticket.is_valid?
22
- conditions = {:username => ticket.response.user}
22
+ conditions = {::Devise.cas_username_column => ticket.response.user}
23
23
 
24
24
  # We don't want to override Devise 1.1's find_for_authentication
25
25
  resource = if respond_to?(:find_for_authentication)
@@ -6,7 +6,7 @@ if ActionController::Routing.name =~ /ActionDispatch/
6
6
 
7
7
  def devise_cas_authenticatable(mapping, controllers)
8
8
  # service endpoint for CAS server
9
- get "/", :to => "#{controllers[:cas_sessions]}#service", :as => ""
9
+ get "service", :to => "#{controllers[:cas_sessions]}#service", :as => "service"
10
10
 
11
11
  resource :session, :only => [], :controller => controllers[:cas_sessions], :path => "" do
12
12
  get :new, :path => mapping.path_names[:sign_in], :as => "new"
@@ -24,7 +24,7 @@ else
24
24
 
25
25
  def cas_authenticatable(routes, mapping)
26
26
  routes.with_options(:controller => 'devise/cas_sessions', :name_prefix => nil) do |session|
27
- session.send(:"#{mapping.name}", '/', :action => 'service', :conditions => {:method => :get})
27
+ session.send(:"#{mapping.name}_service", '/', :action => 'service', :conditions => {:method => :get})
28
28
  session.send(:"unregistered_#{mapping.name}_session", '/unregistered', :action => "unregistered", :conditions => {:method => :get})
29
29
  session.send(:"new_#{mapping.name}_session", mapping.path_names[:sign_in], :action => 'new', :conditions => {:method => :get})
30
30
  session.send(:"#{mapping.name}_session", mapping.path_names[:sign_in], :action => 'create', :conditions => {:method => :post})
@@ -19,7 +19,7 @@ module Devise
19
19
  if resource = mapping.to.authenticate_with_cas_ticket(ticket)
20
20
  success!(resource)
21
21
  elsif ticket.is_valid?
22
- redirect!(::Devise.cas_service_url(request.url, mapping) + "/unregistered", :username => ticket.response.user)
22
+ redirect!(::Devise.cas_unregistered_url(request.url, mapping), :username => ticket.response.user)
23
23
  #fail!("The user #{ticket.response.user} is not registered with this site. Please use a different account.")
24
24
  else
25
25
  fail!(:invalid)
@@ -35,11 +35,15 @@ module Devise
35
35
  # Should devise_cas_authenticatable attempt to create new user records for
36
36
  # unknown usernames? True by default.
37
37
  @@cas_create_user = true
38
+
39
+ # The model attribute used for query conditions. Should be the same as
40
+ # the rubycas-server username_column. :username by default
41
+ @@cas_username_column = :username
38
42
 
39
43
  # Name of the parameter passed in the logout query
40
44
  @@cas_destination_logout_param_name = nil
41
45
 
42
- mattr_accessor :cas_base_url, :cas_login_url, :cas_logout_url, :cas_validate_url, :cas_create_user, :cas_destination_logout_param_name
46
+ mattr_accessor :cas_base_url, :cas_login_url, :cas_logout_url, :cas_validate_url, :cas_create_user, :cas_destination_logout_param_name, :cas_username_column
43
47
 
44
48
  def self.cas_create_user?
45
49
  cas_create_user
@@ -57,6 +61,15 @@ module Devise
57
61
  end
58
62
 
59
63
  def self.cas_service_url(base_url, mapping)
64
+ cas_action_url(base_url, mapping, "service")
65
+ end
66
+
67
+ def self.cas_unregistered_url(base_url, mapping)
68
+ cas_action_url(base_url, mapping, "unregistered")
69
+ end
70
+
71
+ private
72
+ def self.cas_action_url(base_url, mapping, action)
60
73
  u = URI.parse(base_url)
61
74
  u.query = nil
62
75
  u.path = if mapping.respond_to?(:fullpath)
@@ -64,6 +77,8 @@ module Devise
64
77
  else
65
78
  mapping.raw_path
66
79
  end
80
+ u.path << "/"
81
+ u.path << action
67
82
  u.to_s
68
83
  end
69
84
  end
data/spec/routes_spec.rb CHANGED
@@ -3,15 +3,15 @@ require 'spec_helper'
3
3
  describe Devise::CasSessionsController do
4
4
  include RSpec::Rails::ControllerExampleGroup
5
5
 
6
- it { should route(:get, "/users").to(:action => "service") }
6
+ it { should route(:get, "/users/service").to(:action => "service") }
7
7
  it { should route(:get, "/users/sign_in").to(:action => "new") }
8
8
  it { should route(:post, "/users/sign_in").to(:action => "create") }
9
9
  it { should route(:get, "/users/sign_out").to(:action => "destroy") }
10
10
  it { should route(:get, "/users/unregistered").to(:action => "unregistered") }
11
11
 
12
12
  it "should have the right route names" do
13
- controller.should respond_to("user_path", "new_user_session_path", "user_session_path", "destroy_user_session_path")
14
- controller.user_path.should == "/users"
13
+ controller.should respond_to("user_service_path", "new_user_session_path", "user_session_path", "destroy_user_session_path")
14
+ controller.user_service_path.should == "/users/service"
15
15
  controller.new_user_session_path.should == "/users/sign_in"
16
16
  controller.user_session_path.should == "/users/sign_in"
17
17
  controller.destroy_user_session_path.should == "/users/sign_out"
@@ -20,7 +20,7 @@ describe Devise::Strategies::CasAuthenticatable, :type => "acceptance" do
20
20
  def cas_login_url
21
21
  @cas_login_url ||= begin
22
22
  uri = URI.parse(Devise.cas_base_url + "/login")
23
- uri.query = Rack::Utils.build_nested_query(:service => user_url)
23
+ uri.query = Rack::Utils.build_nested_query(:service => user_service_url)
24
24
  uri.to_s
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_cas_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- hash: -3702664340
4
+ hash: -3702664344
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
10
  - alpha
11
- - 8
12
- version: 1.0.0.alpha8
11
+ - 10
12
+ version: 1.0.0.alpha10
13
13
  platform: ruby
14
14
  authors:
15
15
  - Nat Budin
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-05-11 00:00:00 -04:00
20
+ date: 2011-06-08 00:00:00 -04:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -31,11 +31,11 @@ dependencies:
31
31
  segments:
32
32
  - 0
33
33
  version: "0"
34
- name: devise_cas_authenticatable
34
+ name: devise
35
35
  version_requirements: *id001
36
36
  prerelease: false
37
37
  - !ruby/object:Gem::Dependency
38
- type: :runtime
38
+ type: :development
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
@@ -45,7 +45,7 @@ dependencies:
45
45
  segments:
46
46
  - 0
47
47
  version: "0"
48
- name: devise
48
+ name: ruby-debug
49
49
  version_requirements: *id002
50
50
  prerelease: false
51
51
  - !ruby/object:Gem::Dependency
@@ -59,110 +59,12 @@ dependencies:
59
59
  segments:
60
60
  - 0
61
61
  version: "0"
62
- name: ruby-debug
63
- version_requirements: *id003
64
- prerelease: false
65
- - !ruby/object:Gem::Dependency
66
- type: :development
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- name: jeweler
77
- version_requirements: *id004
78
- prerelease: false
79
- - !ruby/object:Gem::Dependency
80
- type: :development
81
- requirement: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
90
- name: ruby-debug
91
- version_requirements: *id005
92
- prerelease: false
93
- - !ruby/object:Gem::Dependency
94
- type: :development
95
- requirement: &id006 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
104
62
  name: jeweler
105
- version_requirements: *id006
106
- prerelease: false
107
- - !ruby/object:Gem::Dependency
108
- type: :development
109
- requirement: &id007 !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
118
- name: ruby-debug
119
- version_requirements: *id007
120
- prerelease: false
121
- - !ruby/object:Gem::Dependency
122
- type: :development
123
- requirement: &id008 !ruby/object:Gem::Requirement
124
- none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- name: jeweler
133
- version_requirements: *id008
134
- prerelease: false
135
- - !ruby/object:Gem::Dependency
136
- type: :development
137
- requirement: &id009 !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- hash: 3
143
- segments:
144
- - 0
145
- version: "0"
146
- name: ruby-debug
147
- version_requirements: *id009
148
- prerelease: false
149
- - !ruby/object:Gem::Dependency
150
- type: :development
151
- requirement: &id010 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
158
- - 0
159
- version: "0"
160
- name: jeweler
161
- version_requirements: *id010
63
+ version_requirements: *id003
162
64
  prerelease: false
163
65
  - !ruby/object:Gem::Dependency
164
66
  type: :runtime
165
- requirement: &id011 !ruby/object:Gem::Requirement
67
+ requirement: &id004 !ruby/object:Gem::Requirement
166
68
  none: false
167
69
  requirements:
168
70
  - - ">="
@@ -174,11 +76,11 @@ dependencies:
174
76
  - 6
175
77
  version: 1.0.6
176
78
  name: devise
177
- version_requirements: *id011
79
+ version_requirements: *id004
178
80
  prerelease: false
179
81
  - !ruby/object:Gem::Dependency
180
82
  type: :runtime
181
- requirement: &id012 !ruby/object:Gem::Requirement
83
+ requirement: &id005 !ruby/object:Gem::Requirement
182
84
  none: false
183
85
  requirements:
184
86
  - - ">="
@@ -190,7 +92,7 @@ dependencies:
190
92
  - 1
191
93
  version: 2.2.1
192
94
  name: rubycas-client
193
- version_requirements: *id012
95
+ version_requirements: *id005
194
96
  prerelease: false
195
97
  description: CAS authentication module for Devise
196
98
  email: natbudin@gmail.com