devise_cas_authenticatable 1.0.0 → 1.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4802438427502187764340e8d56cf908ee07ab47
4
+ data.tar.gz: 102f8c610d852576aeabcf993ccdcf5cfe1afe78
5
+ SHA512:
6
+ metadata.gz: 0c9e3d4c11c0db81b7a89ac49c31a0bcf817e64e0c2d4a0c23af07374ff15c23d6bd21f43883fb85dee7899afdb9535b23881e12ef751b24b63667ee90c358e6
7
+ data.tar.gz: c5a8f955b0a8560a7ee7792307c91d412648e344112e569cab0927abc52782ca6d2b3400800fba1f16ee8e554e8d03815453b1205ec962f8e17448bbf9be754d
data/Gemfile.lock CHANGED
@@ -14,7 +14,7 @@ GIT
14
14
  PATH
15
15
  remote: .
16
16
  specs:
17
- devise_cas_authenticatable (1.0.0)
17
+ devise_cas_authenticatable (1.0.1)
18
18
  devise (>= 1.0.6)
19
19
  rubycas-client (>= 2.2.1)
20
20
 
@@ -140,7 +140,7 @@ GEM
140
140
  rspec (~> 2.7.0)
141
141
  ruby_parser (2.3.1)
142
142
  sexp_processor (~> 3.0)
143
- rubycas-client (2.3.8)
143
+ rubycas-client (2.3.9)
144
144
  activesupport
145
145
  rubyzip (0.9.4)
146
146
  selenium-webdriver (2.13.0)
@@ -28,12 +28,8 @@ class Devise::CasSessionsController < Devise::SessionsController
28
28
  else
29
29
  reset_session
30
30
  end
31
- destination = request.protocol
32
- destination << request.host
33
- destination << ":#{request.port.to_s}" unless request.port == 80
34
- destination << after_sign_out_path_for(resource_name)
35
- follow_url = destination
36
- redirect_to(::Devise.cas_client.logout_url(destination, follow_url))
31
+
32
+ redirect_to(logout_url)
37
33
  end
38
34
 
39
35
  def single_sign_out
@@ -94,4 +90,45 @@ class Devise::CasSessionsController < Devise::SessionsController
94
90
  ::Devise.cas_client.add_service_to_login_url(::Devise.cas_service_url(request.url, devise_mapping))
95
91
  end
96
92
  helper_method :cas_login_url
93
+
94
+ def request_url
95
+ return @request_url if @request_url
96
+ @request_url = request.protocol.dup
97
+ @request_url << request.host
98
+ @request_url << ":#{request.port.to_s}" unless request.port == 80
99
+ @request_url
100
+ end
101
+
102
+ def destination_url
103
+ return unless ::Devise.cas_logout_url_param == 'destination'
104
+ if !::Devise.cas_destination_url.blank?
105
+ url = Devise.cas_destination_url
106
+ else
107
+ url = request_url.dup
108
+ url << after_sign_out_path_for(resource_name)
109
+ end
110
+ end
111
+
112
+ def follow_url
113
+ return unless ::Devise.cas_logout_url_param == 'follow'
114
+ if !::Devise.cas_follow_url.blank?
115
+ url = Devise.cas_follow_url
116
+ else
117
+ url = request_url.dup
118
+ url << after_sign_out_path_for(resource_name)
119
+ end
120
+ end
121
+
122
+ def service_url
123
+ ::Devise.cas_service_url(request_url.dup, devise_mapping)
124
+ end
125
+
126
+ def logout_url
127
+ begin
128
+ ::Devise.cas_client.logout_url(destination_url, follow_url, service_url)
129
+ rescue ArgumentError
130
+ # Older rubycas-clients don't accept a service_url
131
+ ::Devise.cas_client.logout_url(destination_url, follow_url)
132
+ end
133
+ end
97
134
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{devise_cas_authenticatable}
5
- s.version = "1.0.0"
5
+ s.version = "1.0.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Nat Budin", "Jeremy Haile"]
@@ -41,6 +41,15 @@ module Devise
41
41
 
42
42
  # The login URL of the CAS server. If undefined, will default based on cas_base_url.
43
43
  @@cas_validate_url = nil
44
+
45
+ # The destination url for logout.
46
+ @@cas_destination_url = nil
47
+
48
+ # The follow url for logout.
49
+ @@cas_follow_url = nil
50
+
51
+ # Which url to send with logout, destination or follow. Can either be nil, destination or follow.
52
+ @@cas_logout_url_param = nil
44
53
 
45
54
  # Should devise_cas_authenticatable enable single-sign-out? Requires use of a supported
46
55
  # session_store. Currently supports active_record or redis.
@@ -62,7 +71,7 @@ module Devise
62
71
  # Name of the parameter passed in the logout query
63
72
  @@cas_destination_logout_param_name = nil
64
73
 
65
- 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, :cas_enable_single_sign_out, :cas_single_sign_out_mapping_strategy
74
+ mattr_accessor :cas_base_url, :cas_login_url, :cas_logout_url, :cas_validate_url, :cas_destination_url, :cas_follow_url, :cas_logout_url_param, :cas_create_user, :cas_destination_logout_param_name, :cas_username_column, :cas_enable_single_sign_out, :cas_single_sign_out_mapping_strategy
66
75
 
67
76
  def self.cas_create_user?
68
77
  cas_create_user
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_cas_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nat Budin
@@ -10,140 +9,176 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-01-05 00:00:00.000000000 Z
12
+ date: 2014-07-06 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: devise
17
- requirement: &70285889160260 !ruby/object:Gem::Requirement
18
- none: false
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  requirements:
20
- - - ! '>='
18
+ - - ">="
21
19
  - !ruby/object:Gem::Version
22
20
  version: 1.0.6
23
21
  type: :runtime
24
22
  prerelease: false
25
- version_requirements: *70285889160260
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 1.0.6
26
28
  - !ruby/object:Gem::Dependency
27
29
  name: rubycas-client
28
- requirement: &70285889146380 !ruby/object:Gem::Requirement
29
- none: false
30
+ requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
- - - ! '>='
32
+ - - ">="
32
33
  - !ruby/object:Gem::Version
33
34
  version: 2.2.1
34
35
  type: :runtime
35
36
  prerelease: false
36
- version_requirements: *70285889146380
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 2.2.1
37
42
  - !ruby/object:Gem::Dependency
38
43
  name: rails
39
- requirement: &70285889118960 !ruby/object:Gem::Requirement
40
- none: false
44
+ requirement: !ruby/object:Gem::Requirement
41
45
  requirements:
42
- - - ! '>='
46
+ - - ">="
43
47
  - !ruby/object:Gem::Version
44
48
  version: 3.0.7
45
49
  type: :development
46
50
  prerelease: false
47
- version_requirements: *70285889118960
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 3.0.7
48
56
  - !ruby/object:Gem::Dependency
49
57
  name: rspec-rails
50
- requirement: &70285889058440 !ruby/object:Gem::Requirement
51
- none: false
58
+ requirement: !ruby/object:Gem::Requirement
52
59
  requirements:
53
- - - ! '>='
60
+ - - ">="
54
61
  - !ruby/object:Gem::Version
55
62
  version: 2.6.1
56
63
  type: :development
57
64
  prerelease: false
58
- version_requirements: *70285889058440
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 2.6.1
59
70
  - !ruby/object:Gem::Dependency
60
71
  name: mocha
61
- requirement: &70285888996140 !ruby/object:Gem::Requirement
62
- none: false
72
+ requirement: !ruby/object:Gem::Requirement
63
73
  requirements:
64
- - - ! '>='
74
+ - - ">="
65
75
  - !ruby/object:Gem::Version
66
76
  version: '0'
67
77
  type: :development
68
78
  prerelease: false
69
- version_requirements: *70285888996140
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: shoulda
72
- requirement: &70285888827440 !ruby/object:Gem::Requirement
73
- none: false
86
+ requirement: !ruby/object:Gem::Requirement
74
87
  requirements:
75
- - - ! '>='
88
+ - - ">="
76
89
  - !ruby/object:Gem::Version
77
90
  version: '0'
78
91
  type: :development
79
92
  prerelease: false
80
- version_requirements: *70285888827440
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
81
98
  - !ruby/object:Gem::Dependency
82
99
  name: sqlite3-ruby
83
- requirement: &70285888797720 !ruby/object:Gem::Requirement
84
- none: false
100
+ requirement: !ruby/object:Gem::Requirement
85
101
  requirements:
86
- - - ! '>='
102
+ - - ">="
87
103
  - !ruby/object:Gem::Version
88
104
  version: '0'
89
105
  type: :development
90
106
  prerelease: false
91
- version_requirements: *70285888797720
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
92
112
  - !ruby/object:Gem::Dependency
93
113
  name: sham_rack
94
- requirement: &70285888698540 !ruby/object:Gem::Requirement
95
- none: false
114
+ requirement: !ruby/object:Gem::Requirement
96
115
  requirements:
97
- - - ! '>='
116
+ - - ">="
98
117
  - !ruby/object:Gem::Version
99
118
  version: '0'
100
119
  type: :development
101
120
  prerelease: false
102
- version_requirements: *70285888698540
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
103
126
  - !ruby/object:Gem::Dependency
104
127
  name: capybara
105
- requirement: &70285881569960 !ruby/object:Gem::Requirement
106
- none: false
128
+ requirement: !ruby/object:Gem::Requirement
107
129
  requirements:
108
- - - ! '>='
130
+ - - ">="
109
131
  - !ruby/object:Gem::Version
110
132
  version: '0'
111
133
  type: :development
112
134
  prerelease: false
113
- version_requirements: *70285881569960
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
114
140
  - !ruby/object:Gem::Dependency
115
141
  name: crypt-isaac
116
- requirement: &70285881578980 !ruby/object:Gem::Requirement
117
- none: false
142
+ requirement: !ruby/object:Gem::Requirement
118
143
  requirements:
119
- - - ! '>='
144
+ - - ">="
120
145
  - !ruby/object:Gem::Version
121
146
  version: '0'
122
147
  type: :development
123
148
  prerelease: false
124
- version_requirements: *70285881578980
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
125
154
  - !ruby/object:Gem::Dependency
126
155
  name: launchy
127
- requirement: &70285881590360 !ruby/object:Gem::Requirement
128
- none: false
156
+ requirement: !ruby/object:Gem::Requirement
129
157
  requirements:
130
- - - ! '>='
158
+ - - ">="
131
159
  - !ruby/object:Gem::Version
132
160
  version: '0'
133
161
  type: :development
134
162
  prerelease: false
135
- version_requirements: *70285881590360
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
136
168
  - !ruby/object:Gem::Dependency
137
169
  name: pry
138
- requirement: &70285881587400 !ruby/object:Gem::Requirement
139
- none: false
170
+ requirement: !ruby/object:Gem::Requirement
140
171
  requirements:
141
- - - ! '>='
172
+ - - ">="
142
173
  - !ruby/object:Gem::Version
143
174
  version: '0'
144
175
  type: :development
145
176
  prerelease: false
146
- version_requirements: *70285881587400
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
147
182
  description: CAS authentication module for Devise
148
183
  email: natbudin@gmail.com
149
184
  executables: []
@@ -151,9 +186,9 @@ extensions: []
151
186
  extra_rdoc_files:
152
187
  - README.md
153
188
  files:
154
- - .gitignore
155
- - .project
156
- - .travis.yml
189
+ - ".gitignore"
190
+ - ".project"
191
+ - ".travis.yml"
157
192
  - Gemfile
158
193
  - Gemfile.lock
159
194
  - README.md
@@ -209,30 +244,26 @@ files:
209
244
  - spec/support/migrations.rb
210
245
  homepage: http://github.com/nbudin/devise_cas_authenticatable
211
246
  licenses: []
247
+ metadata: {}
212
248
  post_install_message:
213
249
  rdoc_options: []
214
250
  require_paths:
215
251
  - lib
216
252
  required_ruby_version: !ruby/object:Gem::Requirement
217
- none: false
218
253
  requirements:
219
- - - ! '>='
254
+ - - ">="
220
255
  - !ruby/object:Gem::Version
221
256
  version: '0'
222
- segments:
223
- - 0
224
- hash: -3821931593297502505
225
257
  required_rubygems_version: !ruby/object:Gem::Requirement
226
- none: false
227
258
  requirements:
228
- - - ! '>'
259
+ - - ">"
229
260
  - !ruby/object:Gem::Version
230
261
  version: 1.3.1
231
262
  requirements: []
232
263
  rubyforge_project:
233
- rubygems_version: 1.8.12
264
+ rubygems_version: 2.2.0
234
265
  signing_key:
235
- specification_version: 3
266
+ specification_version: 4
236
267
  summary: CAS authentication module for Devise
237
268
  test_files:
238
269
  - spec/routes_spec.rb