scimitar 1.8.1 → 2.0.0

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/scimitar/active_record_backed_resources_controller.rb +20 -94
  3. data/app/controllers/scimitar/application_controller.rb +13 -41
  4. data/app/controllers/scimitar/schemas_controller.rb +0 -5
  5. data/app/models/scimitar/complex_types/address.rb +6 -0
  6. data/app/models/scimitar/engine_configuration.rb +5 -13
  7. data/app/models/scimitar/error_response.rb +0 -12
  8. data/app/models/scimitar/lists/query_parser.rb +10 -25
  9. data/app/models/scimitar/resource_invalid_error.rb +1 -1
  10. data/app/models/scimitar/resources/base.rb +4 -14
  11. data/app/models/scimitar/resources/mixin.rb +13 -140
  12. data/app/models/scimitar/schema/address.rb +0 -1
  13. data/app/models/scimitar/schema/attribute.rb +5 -14
  14. data/app/models/scimitar/schema/base.rb +1 -1
  15. data/app/models/scimitar/schema/vdtp.rb +1 -1
  16. data/app/models/scimitar/service_provider_configuration.rb +3 -14
  17. data/config/initializers/scimitar.rb +3 -28
  18. data/lib/scimitar/version.rb +2 -2
  19. data/lib/scimitar.rb +2 -7
  20. data/spec/apps/dummy/app/controllers/mock_groups_controller.rb +1 -1
  21. data/spec/apps/dummy/app/models/mock_group.rb +1 -1
  22. data/spec/apps/dummy/app/models/mock_user.rb +8 -36
  23. data/spec/apps/dummy/config/application.rb +1 -0
  24. data/spec/apps/dummy/config/environments/test.rb +28 -5
  25. data/spec/apps/dummy/config/initializers/scimitar.rb +10 -61
  26. data/spec/apps/dummy/config/routes.rb +7 -28
  27. data/spec/apps/dummy/db/migrate/20210304014602_create_mock_users.rb +1 -10
  28. data/spec/apps/dummy/db/migrate/20210308044214_create_join_table_mock_groups_mock_users.rb +3 -8
  29. data/spec/apps/dummy/db/schema.rb +4 -11
  30. data/spec/controllers/scimitar/application_controller_spec.rb +3 -126
  31. data/spec/controllers/scimitar/resource_types_controller_spec.rb +2 -2
  32. data/spec/controllers/scimitar/schemas_controller_spec.rb +2 -10
  33. data/spec/models/scimitar/complex_types/address_spec.rb +4 -3
  34. data/spec/models/scimitar/complex_types/email_spec.rb +2 -0
  35. data/spec/models/scimitar/lists/query_parser_spec.rb +9 -76
  36. data/spec/models/scimitar/resources/base_spec.rb +70 -208
  37. data/spec/models/scimitar/resources/base_validation_spec.rb +2 -27
  38. data/spec/models/scimitar/resources/mixin_spec.rb +43 -790
  39. data/spec/models/scimitar/schema/attribute_spec.rb +3 -22
  40. data/spec/models/scimitar/schema/base_spec.rb +1 -1
  41. data/spec/models/scimitar/schema/user_spec.rb +0 -10
  42. data/spec/requests/active_record_backed_resources_controller_spec.rb +66 -709
  43. data/spec/requests/application_controller_spec.rb +3 -16
  44. data/spec/spec_helper.rb +0 -8
  45. metadata +14 -25
  46. data/LICENSE.txt +0 -21
  47. data/README.md +0 -710
  48. data/lib/scimitar/support/utilities.rb +0 -51
  49. data/spec/apps/dummy/app/controllers/custom_create_mock_users_controller.rb +0 -25
  50. data/spec/apps/dummy/app/controllers/custom_replace_mock_users_controller.rb +0 -25
  51. data/spec/apps/dummy/app/controllers/custom_save_mock_users_controller.rb +0 -24
  52. data/spec/apps/dummy/app/controllers/custom_update_mock_users_controller.rb +0 -25
@@ -11,14 +11,11 @@ RSpec.describe Scimitar::ApplicationController do
11
11
  end
12
12
 
13
13
  context 'format handling' do
14
- it 'renders "OK" if the request does not provide any Content-Type value' do
14
+ it 'renders "not acceptable" if the request does not use SCIM type' do
15
15
  get '/CustomRequestVerifiers', params: { format: :html }
16
16
 
17
- expect(response).to have_http_status(:ok)
18
- parsed_body = JSON.parse(response.body)
19
- expect(parsed_body['request']['is_scim' ]).to eql(true)
20
- expect(parsed_body['request']['format' ]).to eql('application/scim+json')
21
- expect(parsed_body['request']['content_type']).to eql('application/scim+json') # Filled in by ApplicationController#require_scim
17
+ expect(response).to have_http_status(:not_acceptable)
18
+ expect(JSON.parse(response.body)['detail']).to eql('Only application/scim+json type is accepted.')
22
19
  end
23
20
 
24
21
  it 'renders 400 if given bad JSON' do
@@ -38,16 +35,6 @@ RSpec.describe Scimitar::ApplicationController do
38
35
  expect(parsed_body['request']['content_type']).to eql('application/scim+json')
39
36
  end
40
37
 
41
- it 'translates Content-Type with charset to Rails request format' do
42
- get '/CustomRequestVerifiers', headers: { 'CONTENT_TYPE' => 'application/scim+json; charset=utf-8' }
43
-
44
- expect(response).to have_http_status(:ok)
45
- parsed_body = JSON.parse(response.body)
46
- expect(parsed_body['request']['is_scim' ]).to eql(true)
47
- expect(parsed_body['request']['format' ]).to eql('application/scim+json')
48
- expect(parsed_body['request']['content_type']).to eql('application/scim+json; charset=utf-8')
49
- end
50
-
51
38
  it 'translates Rails request format to header' do
52
39
  get '/CustomRequestVerifiers', params: { format: :scim }
53
40
 
data/spec/spec_helper.rb CHANGED
@@ -30,7 +30,6 @@ RSpec.configure do | config |
30
30
  config.disable_monkey_patching!
31
31
  config.infer_spec_type_from_file_location!
32
32
  config.filter_rails_from_backtrace!
33
- config.raise_errors_for_deprecations!
34
33
 
35
34
  config.color = true
36
35
  config.tty = true
@@ -39,13 +38,6 @@ RSpec.configure do | config |
39
38
  config.use_transactional_fixtures = true
40
39
 
41
40
  Kernel.srand config.seed
42
-
43
- config.around :each do | example |
44
- original_engine_configuration = Scimitar.instance_variable_get('@engine_configuration')
45
- example.run()
46
- ensure
47
- Scimitar.instance_variable_set('@engine_configuration', original_engine_configuration)
48
- end
49
41
  end
50
42
 
51
43
  # ============================================================================
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scimitar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - RIPA Global
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-01-16 00:00:00.000000000 Z
12
+ date: 2022-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,70 +17,70 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '6.0'
20
+ version: '7.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '6.0'
27
+ version: '7.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '13.1'
34
+ version: '13.0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '13.1'
41
+ version: '13.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: pg
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.5'
48
+ version: '1.2'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '1.5'
55
+ version: '1.2'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: simplecov-rcov
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.3'
62
+ version: '0.2'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.3'
69
+ version: '0.2'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rdoc
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '6.6'
76
+ version: '6.4'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '6.6'
83
+ version: '6.4'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: rspec-rails
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -130,8 +130,6 @@ executables: []
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
- - LICENSE.txt
134
- - README.md
135
133
  - Rakefile
136
134
  - app/controllers/scimitar/active_record_backed_resources_controller.rb
137
135
  - app/controllers/scimitar/application_controller.rb
@@ -195,14 +193,9 @@ files:
195
193
  - lib/scimitar.rb
196
194
  - lib/scimitar/engine.rb
197
195
  - lib/scimitar/support/hash_with_indifferent_case_insensitive_access.rb
198
- - lib/scimitar/support/utilities.rb
199
196
  - lib/scimitar/version.rb
200
- - spec/apps/dummy/app/controllers/custom_create_mock_users_controller.rb
201
197
  - spec/apps/dummy/app/controllers/custom_destroy_mock_users_controller.rb
202
- - spec/apps/dummy/app/controllers/custom_replace_mock_users_controller.rb
203
198
  - spec/apps/dummy/app/controllers/custom_request_verifiers_controller.rb
204
- - spec/apps/dummy/app/controllers/custom_save_mock_users_controller.rb
205
- - spec/apps/dummy/app/controllers/custom_update_mock_users_controller.rb
206
199
  - spec/apps/dummy/app/controllers/mock_groups_controller.rb
207
200
  - spec/apps/dummy/app/controllers/mock_users_controller.rb
208
201
  - spec/apps/dummy/app/models/mock_group.rb
@@ -251,7 +244,7 @@ metadata:
251
244
  homepage_uri: https://www.ripaglobal.com/
252
245
  source_code_uri: https://github.com/RIPAGlobal/scimitar/
253
246
  bug_tracker_uri: https://github.com/RIPAGlobal/scimitar/issues/
254
- changelog_uri: https://github.com/RIPAGlobal/scimitar/blob/v1/CHANGELOG.md
247
+ changelog_uri: https://github.com/RIPAGlobal/scimitar/blob/master/CHANGELOG.md
255
248
  post_install_message:
256
249
  rdoc_options: []
257
250
  require_paths:
@@ -267,17 +260,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
260
  - !ruby/object:Gem::Version
268
261
  version: '0'
269
262
  requirements: []
270
- rubygems_version: 3.5.4
263
+ rubygems_version: 3.3.3
271
264
  signing_key:
272
265
  specification_version: 4
273
266
  summary: SCIM v2 for Rails
274
267
  test_files:
275
- - spec/apps/dummy/app/controllers/custom_create_mock_users_controller.rb
276
268
  - spec/apps/dummy/app/controllers/custom_destroy_mock_users_controller.rb
277
- - spec/apps/dummy/app/controllers/custom_replace_mock_users_controller.rb
278
269
  - spec/apps/dummy/app/controllers/custom_request_verifiers_controller.rb
279
- - spec/apps/dummy/app/controllers/custom_save_mock_users_controller.rb
280
- - spec/apps/dummy/app/controllers/custom_update_mock_users_controller.rb
281
270
  - spec/apps/dummy/app/controllers/mock_groups_controller.rb
282
271
  - spec/apps/dummy/app/controllers/mock_users_controller.rb
283
272
  - spec/apps/dummy/app/models/mock_group.rb
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2021 RIPA Global
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.