scimitar 1.11.0 → 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 +23 -98
- data/app/controllers/scimitar/application_controller.rb +17 -44
- data/app/controllers/scimitar/resource_types_controller.rb +3 -7
- data/app/controllers/scimitar/resources_controller.rb +2 -0
- data/app/controllers/scimitar/schemas_controller.rb +3 -366
- data/app/controllers/scimitar/service_provider_configurations_controller.rb +1 -0
- data/app/models/scimitar/complex_types/address.rb +6 -0
- data/app/models/scimitar/engine_configuration.rb +5 -15
- data/app/models/scimitar/error_response.rb +0 -12
- data/app/models/scimitar/lists/query_parser.rb +13 -113
- data/app/models/scimitar/resource_invalid_error.rb +1 -1
- data/app/models/scimitar/resources/base.rb +9 -53
- data/app/models/scimitar/resources/mixin.rb +59 -646
- 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/name.rb +2 -2
- data/app/models/scimitar/schema/user.rb +10 -10
- 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 -69
- data/lib/scimitar/engine.rb +12 -57
- data/lib/scimitar/support/hash_with_indifferent_case_insensitive_access.rb +10 -140
- 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 +9 -52
- 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 -90
- data/spec/apps/dummy/config/routes.rb +7 -28
- data/spec/apps/dummy/db/migrate/20210304014602_create_mock_users.rb +1 -11
- 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 -12
- data/spec/controllers/scimitar/application_controller_spec.rb +3 -126
- data/spec/controllers/scimitar/resource_types_controller_spec.rb +4 -8
- data/spec/controllers/scimitar/schemas_controller_spec.rb +48 -344
- 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 -146
- data/spec/models/scimitar/resources/base_spec.rb +71 -217
- data/spec/models/scimitar/resources/base_validation_spec.rb +5 -43
- data/spec/models/scimitar/resources/mixin_spec.rb +129 -1508
- 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 +2 -12
- data/spec/requests/active_record_backed_resources_controller_spec.rb +66 -1016
- data/spec/requests/application_controller_spec.rb +3 -16
- data/spec/requests/engine_spec.rb +0 -75
- data/spec/spec_helper.rb +1 -9
- data/spec/support/hash_with_indifferent_case_insensitive_access_spec.rb +0 -108
- metadata +26 -37
- data/LICENSE.txt +0 -21
- data/README.md +0 -717
- data/lib/scimitar/support/utilities.rb +0 -111
- 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
|
|
@@ -42,79 +42,4 @@ RSpec.describe Scimitar::Engine do
|
|
42
42
|
expect(JSON.parse(response.body)['name']['familyName']).to eql('baz')
|
43
43
|
end
|
44
44
|
end # "context 'parameter parser' do"
|
45
|
-
|
46
|
-
# These are unit tests rather than request tests; seems like a reasonable
|
47
|
-
# place to put them in the absence of a standardised RSpec "engine" location.
|
48
|
-
#
|
49
|
-
context 'engine unit tests' do
|
50
|
-
around :each do | example |
|
51
|
-
license_schema = Class.new(Scimitar::Schema::Base) do
|
52
|
-
def initialize(options = {})
|
53
|
-
super(name: 'License', id: self.class.id(), description: 'Represents a License')
|
54
|
-
end
|
55
|
-
def self.id; 'urn:ietf:params:scim:schemas:license'; end
|
56
|
-
def self.scim_attributes; []; end
|
57
|
-
end
|
58
|
-
|
59
|
-
@license_resource = Class.new(Scimitar::Resources::Base) do
|
60
|
-
self.set_schema(license_schema)
|
61
|
-
def self.endpoint; '/License'; end
|
62
|
-
end
|
63
|
-
|
64
|
-
example.run()
|
65
|
-
ensure
|
66
|
-
Scimitar::Engine.reset_default_resources()
|
67
|
-
Scimitar::Engine.reset_custom_resources()
|
68
|
-
end
|
69
|
-
|
70
|
-
context '::resources, :add_custom_resource, ::set_default_resources' do
|
71
|
-
it 'returns default resources' do
|
72
|
-
expect(Scimitar::Engine.resources()).to match_array([Scimitar::Resources::User, Scimitar::Resources::Group])
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'includes custom resources' do
|
76
|
-
Scimitar::Engine.add_custom_resource(@license_resource)
|
77
|
-
expect(Scimitar::Engine.resources()).to match_array([Scimitar::Resources::User, Scimitar::Resources::Group, @license_resource])
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'notes changes to defaults' do
|
81
|
-
Scimitar::Engine.set_default_resources([Scimitar::Resources::User])
|
82
|
-
expect(Scimitar::Engine.resources()).to match_array([Scimitar::Resources::User])
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'notes changes to defaults with custom resources added' do
|
86
|
-
Scimitar::Engine.set_default_resources([Scimitar::Resources::User])
|
87
|
-
Scimitar::Engine.add_custom_resource(@license_resource)
|
88
|
-
expect(Scimitar::Engine.resources()).to match_array([Scimitar::Resources::User, @license_resource])
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'rejects bad defaults' do
|
92
|
-
expect {
|
93
|
-
Scimitar::Engine.set_default_resources([@license_resource])
|
94
|
-
}.to raise_error('Scimitar::Engine.set_default_resources: Only Scimitar::Resources::User, Scimitar::Resources::Group are supported')
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'rejects empty defaults' do
|
98
|
-
expect {
|
99
|
-
Scimitar::Engine.set_default_resources([])
|
100
|
-
}.to raise_error('Scimitar::Engine.set_default_resources: At least one resource must be given')
|
101
|
-
end
|
102
|
-
end # "context '::resources, :add_custom_resource, ::set_default_resources' do"
|
103
|
-
|
104
|
-
context '#schemas' do
|
105
|
-
it 'returns schema instances from ::resources' do
|
106
|
-
expect(Scimitar::Engine).to receive(:resources).and_return([Scimitar::Resources::User, @license_resource])
|
107
|
-
|
108
|
-
schema_instances = Scimitar::Engine.schemas()
|
109
|
-
schema_classes = schema_instances.map(&:class)
|
110
|
-
|
111
|
-
expect(schema_classes).to match_array([
|
112
|
-
Scimitar::Schema::User,
|
113
|
-
ScimSchemaExtensions::User::Enterprise,
|
114
|
-
ScimSchemaExtensions::User::Manager,
|
115
|
-
@license_resource.schemas.first
|
116
|
-
])
|
117
|
-
end
|
118
|
-
end # "context '#schemas' do"
|
119
|
-
end # "context 'engine unit tests' do"
|
120
45
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -19,7 +19,7 @@ require File.expand_path('../apps/dummy/config/environment', __FILE__)
|
|
19
19
|
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
20
20
|
|
21
21
|
require 'rspec/rails'
|
22
|
-
require '
|
22
|
+
require 'byebug'
|
23
23
|
require 'scimitar'
|
24
24
|
|
25
25
|
# ============================================================================
|
@@ -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
|
# ============================================================================
|
@@ -37,114 +37,6 @@ RSpec.describe Scimitar::Support::HashWithIndifferentCaseInsensitiveAccess do
|
|
37
37
|
expect(subject()).to_not have_key('bar')
|
38
38
|
end
|
39
39
|
end # "context 'where keys set as symbols' do"
|
40
|
-
|
41
|
-
context 'access and merging' do
|
42
|
-
before :each do
|
43
|
-
@original_subject = subject().to_h().dup()
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'returns keys as Strings' do
|
47
|
-
subject()[:foo] = 1
|
48
|
-
subject()[:BAR] = 2
|
49
|
-
|
50
|
-
expect(subject().keys).to match_array(@original_subject.keys + ['foo', 'BAR'])
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'retains original case of keys' do
|
54
|
-
subject()[:foo ] = 1
|
55
|
-
subject()['FoO'] = 40 # (first-time-set case preservation test in passing)
|
56
|
-
subject()[:BAR ] = 2
|
57
|
-
subject()['Baz'] = 3
|
58
|
-
|
59
|
-
expectation = @original_subject.merge({
|
60
|
-
'foo' => 40,
|
61
|
-
'BAR' => 2,
|
62
|
-
'Baz' => 3
|
63
|
-
})
|
64
|
-
|
65
|
-
expect(subject()).to eql(expectation)
|
66
|
-
end
|
67
|
-
|
68
|
-
it '#merge does not mutate the receiver and retains case of first-set keys' do
|
69
|
-
subject()[:foo] = 1
|
70
|
-
subject()[:BAR] = 2
|
71
|
-
|
72
|
-
pre_merge_subject = subject().dup()
|
73
|
-
|
74
|
-
result = subject().merge({:FOO => { 'onE' => 40 }, :Baz => 3})
|
75
|
-
expectation = @original_subject.merge({
|
76
|
-
'foo' => { 'onE' => 40 },
|
77
|
-
'BAR' => 2,
|
78
|
-
'Baz' => 3
|
79
|
-
})
|
80
|
-
|
81
|
-
expect(subject()).to eql(pre_merge_subject)
|
82
|
-
expect(result).to eql(expectation)
|
83
|
-
end
|
84
|
-
|
85
|
-
it '#merge! mutates the receiver retains case of first-set keys' do
|
86
|
-
subject()[:foo] = 1
|
87
|
-
subject()[:BAR] = 2
|
88
|
-
|
89
|
-
subject().merge!({:FOO => { 'onE' => 40 }, :Baz => 3})
|
90
|
-
|
91
|
-
expectation = @original_subject.merge({
|
92
|
-
'foo' => { 'onE' => 40 },
|
93
|
-
'BAR' => 2,
|
94
|
-
'Baz' => 3
|
95
|
-
})
|
96
|
-
|
97
|
-
expect(subject()).to eql(expectation)
|
98
|
-
end
|
99
|
-
|
100
|
-
it '#deep_merge does not mutate the receiver and retains nested key cases' do
|
101
|
-
subject()[:foo] = { :one => 10 }
|
102
|
-
subject()[:BAR] = 2
|
103
|
-
|
104
|
-
pre_merge_subject = subject().dup()
|
105
|
-
|
106
|
-
result = subject().deep_merge({:FOO => { 'ONE' => 40, :TWO => 20 }, :Baz => 3})
|
107
|
-
expectation = @original_subject.merge({
|
108
|
-
'foo' => { 'one' => 40, 'TWO' => 20 },
|
109
|
-
'BAR' => 2,
|
110
|
-
'Baz' => 3
|
111
|
-
})
|
112
|
-
|
113
|
-
expect(subject()).to eql(pre_merge_subject)
|
114
|
-
expect(result).to eql(expectation)
|
115
|
-
end
|
116
|
-
|
117
|
-
it '#deep_merge! mutates the receiver and retains nested key cases' do
|
118
|
-
subject()[:foo] = { :one => 10 }
|
119
|
-
subject()[:BAR] = 2
|
120
|
-
|
121
|
-
subject().deep_merge!({:FOO => { 'ONE' => 40, :TWO => 20 }, :Baz => 3})
|
122
|
-
|
123
|
-
expectation = @original_subject.merge({
|
124
|
-
'foo' => { 'one' => 40, 'TWO' => 20 },
|
125
|
-
'BAR' => 2,
|
126
|
-
'Baz' => 3
|
127
|
-
})
|
128
|
-
|
129
|
-
expect(subject()).to eql(expectation)
|
130
|
-
end
|
131
|
-
|
132
|
-
it 'retains indifferent behaviour after duplication' do
|
133
|
-
subject()[:foo] = { 'onE' => 40 }
|
134
|
-
subject()[:BAR] = 2
|
135
|
-
|
136
|
-
duplicate = subject().dup()
|
137
|
-
duplicate.merge!({ 'FOO' => true, 'baz' => 3 })
|
138
|
-
|
139
|
-
expectation = @original_subject.merge({
|
140
|
-
'foo' => true,
|
141
|
-
'BAR' => 2,
|
142
|
-
'baz' => 3
|
143
|
-
})
|
144
|
-
|
145
|
-
expect(duplicate.to_h).to eql(expectation.to_h)
|
146
|
-
end
|
147
|
-
end # "context 'access and merging' do"
|
148
40
|
end # "shared_examples 'an indifferent access, case insensitive Hash' do"
|
149
41
|
|
150
42
|
context 'when created directly' do
|
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,112 +17,112 @@ 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
|
-
name:
|
29
|
+
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
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: '
|
41
|
+
version: '13.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: pg
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
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: '
|
55
|
+
version: '1.2'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: simplecov-rcov
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
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: '
|
69
|
+
version: '0.2'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: rdoc
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
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: '
|
83
|
+
version: '6.4'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: rspec-rails
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
90
|
+
version: '5.0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
97
|
+
version: '5.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: byebug
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '11.1'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '11.1'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: doggo
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: '1.
|
118
|
+
version: '1.2'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '1.
|
125
|
+
version: '1.2'
|
126
126
|
description: SCIM v2 support for Users and Groups in Ruby On Rails
|
127
127
|
email:
|
128
128
|
- dev@ripaglobal.com
|
@@ -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) 2024 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.
|