gds-sso 14.1.0 → 15.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -6
  3. data/app/controllers/api/user_controller.rb +30 -28
  4. data/app/controllers/authentications_controller.rb +3 -5
  5. data/app/views/layouts/unauthorised.html.erb +1 -1
  6. data/config/routes.rb +6 -5
  7. data/lib/gds-sso.rb +24 -17
  8. data/lib/gds-sso/api_access.rb +1 -1
  9. data/lib/gds-sso/bearer_token.rb +24 -23
  10. data/lib/gds-sso/config.rb +13 -2
  11. data/lib/gds-sso/controller_methods.rb +5 -6
  12. data/lib/gds-sso/failure_app.rb +7 -7
  13. data/lib/gds-sso/lint/user_spec.rb +27 -28
  14. data/lib/gds-sso/lint/user_test.rb +28 -28
  15. data/lib/gds-sso/user.rb +13 -13
  16. data/lib/gds-sso/version.rb +1 -1
  17. data/lib/gds-sso/warden_config.rb +21 -31
  18. data/spec/controller/api_user_controller_spec.rb +40 -37
  19. data/spec/controller/controller_methods_spec.rb +28 -28
  20. data/spec/internal/app/assets/config/manifest.js +0 -0
  21. data/spec/internal/app/controllers/application_controller.rb +1 -1
  22. data/spec/internal/app/controllers/example_controller.rb +1 -2
  23. data/spec/internal/config/initializers/gds-sso.rb +2 -2
  24. data/spec/internal/config/routes.rb +5 -2
  25. data/spec/internal/config/storage.yml +3 -0
  26. data/spec/internal/db/combustion_test.sqlite +0 -0
  27. data/spec/internal/db/schema.rb +9 -5
  28. data/spec/internal/log/test.log +1048 -1114
  29. data/spec/requests/end_to_end_spec.rb +45 -46
  30. data/spec/spec_helper.rb +12 -13
  31. data/spec/support/signon_integration_helpers.rb +9 -7
  32. data/spec/support/timecop.rb +1 -1
  33. data/spec/unit/api_access_spec.rb +7 -7
  34. data/spec/unit/bearer_token_spec.rb +14 -15
  35. data/spec/unit/config_spec.rb +5 -5
  36. data/spec/unit/mock_bearer_token_spec.rb +4 -4
  37. data/spec/unit/session_serialisation_spec.rb +5 -5
  38. data/spec/unit/user_spec.rb +23 -24
  39. metadata +80 -63
@@ -1,5 +1,5 @@
1
- require 'spec_helper'
2
- require 'active_record'
1
+ require "spec_helper"
2
+ require "active_record"
3
3
 
4
4
  describe Warden::SessionSerializer do
5
5
  class SerializableUser
@@ -35,7 +35,7 @@ describe Warden::SessionSerializer do
35
35
 
36
36
  describe "deserialize a user" do
37
37
  it "should return the user if the timestamp is current and a Time" do
38
- expect(SerializableUser).to receive(:where).with(:uid => 1234, :remotely_signed_out => false).and_return(double(:first => :a_user))
38
+ expect(SerializableUser).to receive(:where).with(uid: 1234, remotely_signed_out: false).and_return(double(first: :a_user))
39
39
 
40
40
  result = @serializer.deserialize [1234, Time.now.utc - GDS::SSO::Config.auth_valid_for + 3600]
41
41
 
@@ -43,7 +43,7 @@ describe Warden::SessionSerializer do
43
43
  end
44
44
 
45
45
  it "should return the user if the timestamp is current and is an ISO 8601 string" do
46
- expect(SerializableUser).to receive(:where).with(:uid => 1234, :remotely_signed_out => false).and_return(double(:first => :a_user))
46
+ expect(SerializableUser).to receive(:where).with(uid: 1234, remotely_signed_out: false).and_return(double(first: :a_user))
47
47
 
48
48
  result = @serializer.deserialize [1234, (Time.now.utc - GDS::SSO::Config.auth_valid_for + 3600).iso8601]
49
49
 
@@ -69,7 +69,7 @@ describe Warden::SessionSerializer do
69
69
  it "should return nil for a user with a badly formatted timestamp" do
70
70
  expect(SerializableUser).not_to receive(:where)
71
71
 
72
- result = @serializer.deserialize [1234, 'this is not a timestamp']
72
+ result = @serializer.deserialize [1234, "this is not a timestamp"]
73
73
 
74
74
  expect(result).to be_nil
75
75
  end
@@ -1,33 +1,32 @@
1
- require 'spec_helper'
2
- require 'gds-sso/user'
3
- require 'gds-sso/lint/user_spec'
1
+ require "spec_helper"
2
+ require "gds-sso/user"
3
+ require "gds-sso/lint/user_spec"
4
4
 
5
- require 'ostruct'
5
+ require "ostruct"
6
6
 
7
7
  describe GDS::SSO::User do
8
8
  before :each do
9
9
  @auth_hash = {
10
- 'provider' => 'gds',
11
- 'uid' => 'abcde',
12
- 'credentials' => {'token' => 'abcdefg', 'secret' => 'abcdefg'},
13
- 'info' => {'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'},
14
- 'extra' => {
15
- 'user' => {
16
- 'permissions' => [], 'organisation_slug' => nil, "organisation_content_id" => nil, 'disabled' => false
17
- }
18
- }
10
+ "provider" => "gds",
11
+ "uid" => "abcde",
12
+ "credentials" => { "token" => "abcdefg", "secret" => "abcdefg" },
13
+ "info" => { "name" => "Matt Patterson", "email" => "matt@alphagov.co.uk" },
14
+ "extra" => {
15
+ "user" => {
16
+ "permissions" => [], "organisation_slug" => nil, "organisation_content_id" => nil, "disabled" => false
17
+ },
18
+ },
19
19
  }
20
20
  end
21
21
 
22
22
  it "should extract the user params from the oauth hash" do
23
- expected = {'uid' => 'abcde',
24
- 'name' => 'Matt Patterson',
25
- 'email' => 'matt@alphagov.co.uk',
26
- "permissions" => [],
27
- "organisation_slug" => nil,
28
- "organisation_content_id" => nil,
29
- 'disabled' => false,
30
- }
23
+ expected = { "uid" => "abcde",
24
+ "name" => "Matt Patterson",
25
+ "email" => "matt@alphagov.co.uk",
26
+ "permissions" => [],
27
+ "organisation_slug" => nil,
28
+ "organisation_content_id" => nil,
29
+ "disabled" => false }
31
30
  expect(GDS::SSO::User.user_params_from_auth_hash(@auth_hash)).to eq(expected)
32
31
  end
33
32
 
@@ -35,11 +34,11 @@ describe GDS::SSO::User do
35
34
  class TestUser < OpenStruct
36
35
  include GDS::SSO::User
37
36
 
38
- def self.where(opts)
37
+ def self.where(_opts)
39
38
  []
40
39
  end
41
40
 
42
- def self.create!(options, scope = {})
41
+ def self.create!(options, _scope = {})
43
42
  new(options)
44
43
  end
45
44
 
@@ -47,7 +46,7 @@ describe GDS::SSO::User do
47
46
  send("#{key}=".to_sym, value)
48
47
  end
49
48
 
50
- def update_attributes(options)
49
+ def update!(options)
51
50
  options.each do |key, value|
52
51
  update_attribute(key, value)
53
52
  end
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds-sso
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.1.0
4
+ version: 15.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-18 00:00:00.000000000 Z
11
+ date: 2020-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '4'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '4'
27
- - !ruby/object:Gem::Dependency
28
- name: warden
14
+ name: multi_json
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - "~>"
32
18
  - !ruby/object:Gem::Version
33
- version: '1.2'
19
+ version: '1.0'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
- version: '1.2'
26
+ version: '1.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: oauth2
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,47 +67,47 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '3.2'
83
69
  - !ruby/object:Gem::Dependency
84
- name: warden-oauth2
70
+ name: rails
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - "~>"
73
+ - - ">="
88
74
  - !ruby/object:Gem::Version
89
- version: 0.0.1
75
+ version: '5'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - "~>"
80
+ - - ">="
95
81
  - !ruby/object:Gem::Version
96
- version: 0.0.1
82
+ version: '5'
97
83
  - !ruby/object:Gem::Dependency
98
- name: multi_json
84
+ name: warden
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '1.0'
89
+ version: '1.2'
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '1.0'
96
+ version: '1.2'
111
97
  - !ruby/object:Gem::Dependency
112
- name: rake
98
+ name: warden-oauth2
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0.9'
118
- type: :development
103
+ version: 0.0.1
104
+ type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0.9'
110
+ version: 0.0.1
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: capybara
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -137,35 +123,35 @@ dependencies:
137
123
  - !ruby/object:Gem::Version
138
124
  version: '2'
139
125
  - !ruby/object:Gem::Dependency
140
- name: rspec-rails
126
+ name: capybara-mechanize
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - ">="
144
130
  - !ruby/object:Gem::Version
145
- version: '3'
131
+ version: '1'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
136
  - - ">="
151
137
  - !ruby/object:Gem::Version
152
- version: '3'
138
+ version: '1'
153
139
  - !ruby/object:Gem::Dependency
154
- name: capybara-mechanize
140
+ name: combustion
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - ">="
158
144
  - !ruby/object:Gem::Version
159
- version: '1'
145
+ version: '0.9'
160
146
  type: :development
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
150
  - - ">="
165
151
  - !ruby/object:Gem::Version
166
- version: '1'
152
+ version: '0.9'
167
153
  - !ruby/object:Gem::Dependency
168
- name: combustion
154
+ name: rake
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - ">="
@@ -178,20 +164,48 @@ dependencies:
178
164
  - - ">="
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0.9'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec-rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '3'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '3'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-govuk
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: sqlite3
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: 1.3.13
201
+ version: '1.4'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: 1.3.13
208
+ version: '1.4'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: timecop
197
211
  requirement: !ruby/object:Gem::Requirement
@@ -238,12 +252,14 @@ files:
238
252
  - spec/controller/controller_methods_spec.rb
239
253
  - spec/fixtures/integration/authorize_api_users.sql
240
254
  - spec/fixtures/integration/signon.sql
255
+ - spec/internal/app/assets/config/manifest.js
241
256
  - spec/internal/app/controllers/application_controller.rb
242
257
  - spec/internal/app/controllers/example_controller.rb
243
258
  - spec/internal/app/models/user.rb
244
259
  - spec/internal/config/database.yml
245
260
  - spec/internal/config/initializers/gds-sso.rb
246
261
  - spec/internal/config/routes.rb
262
+ - spec/internal/config/storage.yml
247
263
  - spec/internal/db/combustion_test.sqlite
248
264
  - spec/internal/db/schema.rb
249
265
  - spec/internal/log/test.log
@@ -271,41 +287,42 @@ required_ruby_version: !ruby/object:Gem::Requirement
271
287
  requirements:
272
288
  - - ">="
273
289
  - !ruby/object:Gem::Version
274
- version: 2.2.2
290
+ version: '2.6'
275
291
  required_rubygems_version: !ruby/object:Gem::Requirement
276
292
  requirements:
277
293
  - - ">="
278
294
  - !ruby/object:Gem::Version
279
295
  version: '0'
280
296
  requirements: []
281
- rubyforge_project:
282
- rubygems_version: 2.7.6
297
+ rubygems_version: 3.1.2
283
298
  signing_key:
284
299
  specification_version: 4
285
300
  summary: Client for GDS' OAuth 2-based SSO
286
301
  test_files:
287
- - spec/support/backport_controller_test_params.rb
288
- - spec/support/timecop.rb
289
- - spec/support/signon_integration_helpers.rb
290
- - spec/unit/user_spec.rb
302
+ - spec/requests/end_to_end_spec.rb
303
+ - spec/spec_helper.rb
291
304
  - spec/unit/api_access_spec.rb
305
+ - spec/unit/bearer_token_spec.rb
306
+ - spec/unit/config_spec.rb
292
307
  - spec/unit/mock_bearer_token_spec.rb
293
308
  - spec/unit/session_serialisation_spec.rb
294
- - spec/unit/config_spec.rb
295
- - spec/unit/bearer_token_spec.rb
296
- - spec/requests/end_to_end_spec.rb
297
- - spec/spec_helper.rb
298
- - spec/fixtures/integration/signon.sql
299
- - spec/fixtures/integration/authorize_api_users.sql
300
- - spec/controller/controller_methods_spec.rb
301
- - spec/controller/api_user_controller_spec.rb
302
- - spec/internal/log/test.log
303
- - spec/internal/public/favicon.ico
309
+ - spec/unit/user_spec.rb
310
+ - spec/internal/app/assets/config/manifest.js
311
+ - spec/internal/app/controllers/application_controller.rb
312
+ - spec/internal/app/controllers/example_controller.rb
313
+ - spec/internal/app/models/user.rb
314
+ - spec/internal/config/routes.rb
315
+ - spec/internal/config/storage.yml
304
316
  - spec/internal/config/database.yml
305
317
  - spec/internal/config/initializers/gds-sso.rb
306
- - spec/internal/config/routes.rb
307
- - spec/internal/app/models/user.rb
308
- - spec/internal/app/controllers/example_controller.rb
309
- - spec/internal/app/controllers/application_controller.rb
318
+ - spec/internal/log/test.log
319
+ - spec/internal/public/favicon.ico
310
320
  - spec/internal/db/schema.rb
311
321
  - spec/internal/db/combustion_test.sqlite
322
+ - spec/support/timecop.rb
323
+ - spec/support/backport_controller_test_params.rb
324
+ - spec/support/signon_integration_helpers.rb
325
+ - spec/fixtures/integration/signon.sql
326
+ - spec/fixtures/integration/authorize_api_users.sql
327
+ - spec/controller/api_user_controller_spec.rb
328
+ - spec/controller/controller_methods_spec.rb