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.
- checksums.yaml +4 -4
- data/app/controllers/scimitar/active_record_backed_resources_controller.rb +20 -94
- data/app/controllers/scimitar/application_controller.rb +13 -41
- data/app/controllers/scimitar/schemas_controller.rb +0 -5
- data/app/models/scimitar/complex_types/address.rb +6 -0
- data/app/models/scimitar/engine_configuration.rb +5 -13
- data/app/models/scimitar/error_response.rb +0 -12
- data/app/models/scimitar/lists/query_parser.rb +10 -25
- data/app/models/scimitar/resource_invalid_error.rb +1 -1
- data/app/models/scimitar/resources/base.rb +4 -14
- data/app/models/scimitar/resources/mixin.rb +13 -140
- data/app/models/scimitar/schema/address.rb +0 -1
- data/app/models/scimitar/schema/attribute.rb +5 -14
- data/app/models/scimitar/schema/base.rb +1 -1
- data/app/models/scimitar/schema/vdtp.rb +1 -1
- data/app/models/scimitar/service_provider_configuration.rb +3 -14
- data/config/initializers/scimitar.rb +3 -28
- data/lib/scimitar/version.rb +2 -2
- data/lib/scimitar.rb +2 -7
- data/spec/apps/dummy/app/controllers/mock_groups_controller.rb +1 -1
- data/spec/apps/dummy/app/models/mock_group.rb +1 -1
- data/spec/apps/dummy/app/models/mock_user.rb +8 -36
- data/spec/apps/dummy/config/application.rb +1 -0
- data/spec/apps/dummy/config/environments/test.rb +28 -5
- data/spec/apps/dummy/config/initializers/scimitar.rb +10 -61
- data/spec/apps/dummy/config/routes.rb +7 -28
- data/spec/apps/dummy/db/migrate/20210304014602_create_mock_users.rb +1 -10
- data/spec/apps/dummy/db/migrate/20210308044214_create_join_table_mock_groups_mock_users.rb +3 -8
- data/spec/apps/dummy/db/schema.rb +4 -11
- data/spec/controllers/scimitar/application_controller_spec.rb +3 -126
- data/spec/controllers/scimitar/resource_types_controller_spec.rb +2 -2
- data/spec/controllers/scimitar/schemas_controller_spec.rb +2 -10
- data/spec/models/scimitar/complex_types/address_spec.rb +4 -3
- data/spec/models/scimitar/complex_types/email_spec.rb +2 -0
- data/spec/models/scimitar/lists/query_parser_spec.rb +9 -76
- data/spec/models/scimitar/resources/base_spec.rb +70 -208
- data/spec/models/scimitar/resources/base_validation_spec.rb +2 -27
- data/spec/models/scimitar/resources/mixin_spec.rb +43 -790
- data/spec/models/scimitar/schema/attribute_spec.rb +3 -22
- data/spec/models/scimitar/schema/base_spec.rb +1 -1
- data/spec/models/scimitar/schema/user_spec.rb +0 -10
- data/spec/requests/active_record_backed_resources_controller_spec.rb +66 -709
- data/spec/requests/application_controller_spec.rb +3 -16
- data/spec/spec_helper.rb +0 -8
- metadata +14 -25
- data/LICENSE.txt +0 -21
- data/README.md +0 -710
- data/lib/scimitar/support/utilities.rb +0 -51
- data/spec/apps/dummy/app/controllers/custom_create_mock_users_controller.rb +0 -25
- data/spec/apps/dummy/app/controllers/custom_replace_mock_users_controller.rb +0 -25
- data/spec/apps/dummy/app/controllers/custom_save_mock_users_controller.rb +0 -24
- 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 "
|
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(:
|
18
|
-
|
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:
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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/
|
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.
|
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.
|