scimaenaga 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -0
  3. data/README.md +2 -14
  4. data/app/controllers/concerns/scim_rails/exception_handler.rb +43 -1
  5. data/app/controllers/scim_rails/scim_groups_controller.rb +64 -40
  6. data/app/controllers/scim_rails/scim_users_controller.rb +39 -65
  7. data/app/libraries/scim_patch.rb +15 -10
  8. data/app/libraries/scim_patch_operation.rb +127 -24
  9. data/app/models/scim_rails/scim_query_parser.rb +5 -3
  10. data/config/routes.rb +2 -0
  11. data/lib/generators/scim_rails/templates/initializer.rb +0 -6
  12. data/lib/scim_rails/config.rb +1 -2
  13. data/lib/scim_rails/version.rb +1 -1
  14. data/spec/controllers/scim_rails/scim_groups_controller_spec.rb +249 -136
  15. data/spec/controllers/scim_rails/scim_users_controller_spec.rb +413 -203
  16. data/spec/dummy/app/models/user.rb +21 -0
  17. data/spec/dummy/bin/setup +2 -0
  18. data/spec/dummy/config/initializers/scim_rails_config.rb +6 -4
  19. data/spec/dummy/db/development.sqlite3 +0 -0
  20. data/spec/dummy/db/migrate/20220117095407_add_country_to_users.rb +5 -0
  21. data/spec/dummy/db/migrate/20220131090107_add_deletable_to_users.rb +5 -0
  22. data/spec/dummy/db/schema.rb +7 -5
  23. data/spec/dummy/db/seeds.rb +15 -1
  24. data/spec/dummy/db/test.sqlite3 +0 -0
  25. data/spec/dummy/log/development.log +0 -0
  26. data/spec/dummy/log/test.log +5770 -0
  27. data/spec/dummy/put_group.http +5 -0
  28. data/spec/dummy/tmp/restart.txt +0 -0
  29. data/spec/factories/user.rb +2 -0
  30. data/spec/libraries/scim_patch_operation_spec.rb +61 -31
  31. data/spec/libraries/scim_patch_spec.rb +38 -29
  32. data/spec/models/scim_query_parser_spec.rb +30 -0
  33. metadata +83 -67
  34. data/spec/support/scim_rails_config.rb +0 -59
@@ -0,0 +1,5 @@
1
+ curl 'http://localhost:9999/scim/v2/Groups/1' \
2
+ -X 'PUT' \
3
+ -d '{"schemas": ["urn:ietf:params:scim:api:messages:2.0:PutOp"], "Operations": ["op": "Add", "path": "members", "value": {"$ref": null, "value": "1"}]}' \
4
+ -H 'Content-Type: application/scim+json' \
5
+ -H 'Authorization:Basic dGVzdF9jb21wYW55OjE=' \
File without changes
@@ -5,5 +5,7 @@ FactoryBot.define do
5
5
  first_name { "Test" }
6
6
  last_name { "User" }
7
7
  sequence(:email) { |n| "#{n}@example.com" }
8
+
9
+ deletable { true }
8
10
  end
9
11
  end
@@ -1,62 +1,62 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "spec_helper"
3
+ require 'spec_helper'
4
4
 
5
5
  describe ScimPatchOperation do
6
-
7
6
  let(:op) { 'Replace' }
8
7
  let(:path) { 'userName' }
9
8
  let(:value) { 'taro.suzuki' }
10
- let(:mutable_attributes_schema) {
9
+ let(:mutable_attributes_schema) do
11
10
  {
12
11
  userName: :name,
13
12
  displayName: :display_name,
14
13
  emails: [
15
14
  {
16
- value: :email
15
+ value: :email,
17
16
  }
18
17
  ],
19
18
  name: {
20
19
  familyName: :family_name,
21
- givenName: :given_name
22
- }
20
+ givenName: :given_name,
21
+ },
22
+ active: :active,
23
23
  }
24
- }
25
- let(:operation) {
24
+ end
25
+ let(:operation) do
26
26
  described_class.new(
27
27
  op,
28
28
  path,
29
29
  value,
30
30
  mutable_attributes_schema
31
31
  )
32
- }
32
+ end
33
33
  describe '#initialize' do
34
34
  context 'replace single attribute' do
35
35
  it {
36
- expect(operation.op).to eq :replace
37
- expect(operation.path_scim).to eq path
38
- expect(operation.path_sp).to eq :name
39
- expect(operation.value).to eq value
36
+ expect(operation.operations[0].op).to eq :replace
37
+ expect(operation.operations[0].path_scim).to eq path
38
+ expect(operation.operations[0].path_sp).to eq :name
39
+ expect(operation.operations[0].value).to eq value
40
40
  }
41
41
  end
42
42
 
43
43
  context 'add single attribute' do
44
44
  let(:op) { 'Add' }
45
45
  it {
46
- expect(operation.op).to eq :add
47
- expect(operation.path_scim).to eq path
48
- expect(operation.path_sp).to eq :name
49
- expect(operation.value).to eq value
46
+ expect(operation.operations[0].op).to eq :add
47
+ expect(operation.operations[0].path_scim).to eq path
48
+ expect(operation.operations[0].path_sp).to eq :name
49
+ expect(operation.operations[0].value).to eq value
50
50
  }
51
51
  end
52
52
 
53
53
  context 'remove single attribute' do
54
54
  let(:op) { 'Remove' }
55
55
  it {
56
- expect(operation.op).to eq :remove
57
- expect(operation.path_scim).to eq path
58
- expect(operation.path_sp).to eq :name
59
- expect(operation.value).to eq value
56
+ expect(operation.operations[0].op).to eq :remove
57
+ expect(operation.operations[0].path_scim).to eq path
58
+ expect(operation.operations[0].path_sp).to eq :name
59
+ expect(operation.operations[0].value).to eq value
60
60
  }
61
61
  end
62
62
 
@@ -64,10 +64,10 @@ describe ScimPatchOperation do
64
64
  let(:path) { 'emails[type eq "work"].value' }
65
65
  let(:value) { 'taro.suzuki@example.com' }
66
66
  it {
67
- expect(operation.op).to eq :replace
68
- expect(operation.path_scim).to eq path
69
- expect(operation.path_sp).to eq :email
70
- expect(operation.value).to eq value
67
+ expect(operation.operations[0].op).to eq :replace
68
+ expect(operation.operations[0].path_scim).to eq path
69
+ expect(operation.operations[0].path_sp).to eq :email
70
+ expect(operation.operations[0].value).to eq value
71
71
  }
72
72
  end
73
73
 
@@ -75,12 +75,42 @@ describe ScimPatchOperation do
75
75
  let(:path) { 'name.familyName' }
76
76
  let(:value) { 'Suzuki' }
77
77
  it {
78
- expect(operation.op).to eq :replace
79
- expect(operation.path_scim).to eq path
80
- expect(operation.path_sp).to eq :family_name
81
- expect(operation.value).to eq value
78
+ expect(operation.operations[0].op).to eq :replace
79
+ expect(operation.operations[0].path_scim).to eq path
80
+ expect(operation.operations[0].path_sp).to eq :family_name
81
+ expect(operation.operations[0].value).to eq value
82
82
  }
83
83
  end
84
- end
85
84
 
86
- end
85
+ context 'replace active' do
86
+ let(:path) { 'active' }
87
+ let(:value) { 'False' }
88
+
89
+ it 'convert string to bool' do
90
+ expect(operation.operations[0].value).to eq false
91
+ end
92
+ end
93
+
94
+ context 'replace multiple attribute' do
95
+ let(:path) { nil }
96
+ let(:value) do
97
+ {
98
+ 'userName' => 'taro.suzuki',
99
+ 'displayName' => 'Taro Suzuki',
100
+ }
101
+ end
102
+
103
+ it 'parse multiple value' do
104
+ expect(operation.operations[0].op).to eq :replace
105
+ expect(operation.operations[0].path_scim).to eq 'userName'
106
+ expect(operation.operations[0].path_sp).to eq :name
107
+ expect(operation.operations[0].value).to eq 'taro.suzuki'
108
+
109
+ expect(operation.operations[1].op).to eq :replace
110
+ expect(operation.operations[1].path_scim).to eq 'displayName'
111
+ expect(operation.operations[1].path_sp).to eq :display_name
112
+ expect(operation.operations[1].value).to eq 'Taro Suzuki'
113
+ end
114
+ end
115
+ end
116
+ end
@@ -3,70 +3,79 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe ScimPatch do
6
-
7
- let(:params) {
6
+ let(:params) do
8
7
  {
9
8
  'schemas' => ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],
10
9
  'Operations' => [
11
10
  {
12
11
  'op' => 'Replace',
13
12
  'path' => 'userName',
14
- 'value' => 'taro.suzuki'
13
+ 'value' => 'taro.suzuki',
15
14
  },
16
15
  {
17
- 'op' => 'Replace',
16
+ 'op' => 'Replace',
18
17
  'path' => 'emails[type eq "work"].value',
19
- 'value' => 'taro.suzuki@example.com'
18
+ 'value' => 'taro.suzuki@example.com',
20
19
  },
21
20
  {
22
21
  'op' => 'Replace',
23
22
  'path' => 'name.familyName',
24
- 'value' => 'Suzuki'
23
+ 'value' => 'Suzuki',
24
+ },
25
+ {
26
+ 'op' => 'Replace',
27
+ 'path' => 'active',
28
+ 'value' => 'False',
25
29
  }
26
- ]
30
+ ],
27
31
  }
28
- }
32
+ end
29
33
 
30
- let(:mutable_attributes_schema) {
34
+ let(:mutable_attributes_schema) do
31
35
  {
32
36
  userName: :name,
33
37
  displayName: :display_name,
34
38
  emails: [
35
39
  {
36
- value: :email
40
+ value: :email,
37
41
  }
38
42
  ],
39
43
  name: {
40
44
  familyName: :family_name,
41
- givenName: :given_name
42
- }
45
+ givenName: :given_name,
46
+ },
47
+ active: :active,
43
48
  }
44
- }
49
+ end
45
50
 
46
51
  let(:patch) { described_class.new(params, mutable_attributes_schema) }
47
52
 
48
53
  describe '#initialize' do
49
54
  it {
50
- expect(patch.operations[0].op).to eq :replace
51
- expect(patch.operations[0].path_scim).to eq 'userName'
52
- expect(patch.operations[0].path_sp).to eq :name
53
- expect(patch.operations[0].value).to eq 'taro.suzuki'
55
+ expect(patch.operations[0].operations[0].op).to eq :replace
56
+ expect(patch.operations[0].operations[0].path_scim).to eq 'userName'
57
+ expect(patch.operations[0].operations[0].path_sp).to eq :name
58
+ expect(patch.operations[0].operations[0].value).to eq 'taro.suzuki'
54
59
 
55
- expect(patch.operations[1].op).to eq :replace
56
- expect(patch.operations[1].path_scim).to eq 'emails[type eq "work"].value'
57
- expect(patch.operations[1].path_sp).to eq :email
58
- expect(patch.operations[1].value).to eq 'taro.suzuki@example.com'
60
+ expect(patch.operations[1].operations[0].op).to eq :replace
61
+ expect(patch.operations[1].operations[0].path_scim).to eq 'emails[type eq "work"].value'
62
+ expect(patch.operations[1].operations[0].path_sp).to eq :email
63
+ expect(patch.operations[1].operations[0].value).to eq 'taro.suzuki@example.com'
59
64
 
60
- expect(patch.operations[2].op).to eq :replace
61
- expect(patch.operations[2].path_scim).to eq 'name.familyName'
62
- expect(patch.operations[2].path_sp).to eq :family_name
63
- expect(patch.operations[2].value).to eq 'Suzuki'
65
+ expect(patch.operations[2].operations[0].op).to eq :replace
66
+ expect(patch.operations[2].operations[0].path_scim).to eq 'name.familyName'
67
+ expect(patch.operations[2].operations[0].path_sp).to eq :family_name
68
+ expect(patch.operations[2].operations[0].value).to eq 'Suzuki'
69
+
70
+ expect(patch.operations[3].operations[0].op).to eq :replace
71
+ expect(patch.operations[3].operations[0].path_scim).to eq 'active'
72
+ expect(patch.operations[3].operations[0].path_sp).to eq :active
73
+ expect(patch.operations[3].operations[0].value).to eq false
64
74
  }
65
75
  end
66
76
 
67
77
  # describe '#update' do
68
- # create user by factory bot
69
- # patch.update(user)
78
+ # create user by factory bot
79
+ # patch.update(user)
70
80
  # end
71
-
72
- end
81
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe ScimRails::ScimQueryParser do
6
+
7
+ let(:query_string) { 'userName eq "taro"' }
8
+ let(:queryable_attributes) {
9
+ {
10
+ userName: :name,
11
+ emails: [
12
+ {
13
+ value: :email
14
+ }
15
+ ]
16
+ }
17
+ }
18
+ let(:parser) { described_class.new(query_string, queryable_attributes) }
19
+
20
+ describe '#attribute' do
21
+ context 'userName' do
22
+ it { expect(parser.attribute).to eq :name }
23
+ end
24
+
25
+ context 'emails[type eq "work"].value' do
26
+ let(:query_string) { 'emails[type eq "work"].value eq "taro@example.com"' }
27
+ it { expect(parser.attribute).to eq :email }
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scimaenaga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Studist Corporation
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-06 00:00:00.000000000 Z
11
+ date: 2022-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -135,7 +135,7 @@ dependencies:
135
135
  - !ruby/object:Gem::Version
136
136
  version: '1.5'
137
137
  description: SCIM Adapter for Rails.
138
- email:
138
+ email:
139
139
  executables: []
140
140
  extensions: []
141
141
  extra_rdoc_files: []
@@ -219,33 +219,41 @@ files:
219
219
  - spec/dummy/config/routes.rb
220
220
  - spec/dummy/config/secrets.yml
221
221
  - spec/dummy/config/spring.rb
222
+ - spec/dummy/db/development.sqlite3
222
223
  - spec/dummy/db/migrate/20181206184304_create_users.rb
223
224
  - spec/dummy/db/migrate/20181206184313_create_companies.rb
224
225
  - spec/dummy/db/migrate/20210423075859_create_groups.rb
225
226
  - spec/dummy/db/migrate/20210423075950_create_group_users.rb
227
+ - spec/dummy/db/migrate/20220117095407_add_country_to_users.rb
228
+ - spec/dummy/db/migrate/20220131090107_add_deletable_to_users.rb
226
229
  - spec/dummy/db/schema.rb
227
230
  - spec/dummy/db/seeds.rb
231
+ - spec/dummy/db/test.sqlite3
232
+ - spec/dummy/log/development.log
233
+ - spec/dummy/log/test.log
228
234
  - spec/dummy/public/404.html
229
235
  - spec/dummy/public/422.html
230
236
  - spec/dummy/public/500.html
231
237
  - spec/dummy/public/apple-touch-icon-precomposed.png
232
238
  - spec/dummy/public/apple-touch-icon.png
233
239
  - spec/dummy/public/favicon.ico
240
+ - spec/dummy/put_group.http
241
+ - spec/dummy/tmp/restart.txt
234
242
  - spec/factories/company.rb
235
243
  - spec/factories/group.rb
236
244
  - spec/factories/user.rb
237
245
  - spec/lib/scim_rails/encoder_spec.rb
238
246
  - spec/libraries/scim_patch_operation_spec.rb
239
247
  - spec/libraries/scim_patch_spec.rb
248
+ - spec/models/scim_query_parser_spec.rb
240
249
  - spec/spec_helper.rb
241
250
  - spec/support/auth_helper.rb
242
251
  - spec/support/factory_bot.rb
243
- - spec/support/scim_rails_config.rb
244
252
  homepage: https://github.com/StudistCorporation/scimaenaga
245
253
  licenses:
246
254
  - MIT
247
255
  metadata: {}
248
- post_install_message:
256
+ post_install_message:
249
257
  rdoc_options: []
250
258
  require_paths:
251
259
  - lib
@@ -264,82 +272,90 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
272
  version: '0'
265
273
  requirements: []
266
274
  rubygems_version: 3.0.3
267
- signing_key:
275
+ signing_key:
268
276
  specification_version: 4
269
277
  summary: SCIM Adapter for Rails.
270
278
  test_files:
271
- - spec/dummy/config.ru
272
- - spec/dummy/db/migrate/20181206184313_create_companies.rb
273
- - spec/dummy/db/migrate/20181206184304_create_users.rb
274
- - spec/dummy/db/migrate/20210423075950_create_group_users.rb
275
- - spec/dummy/db/migrate/20210423075859_create_groups.rb
276
- - spec/dummy/db/schema.rb
277
- - spec/dummy/db/seeds.rb
278
- - spec/dummy/config/spring.rb
279
- - spec/dummy/config/environment.rb
280
- - spec/dummy/config/routes.rb
281
- - spec/dummy/config/cable.yml
282
- - spec/dummy/config/database.yml
283
- - spec/dummy/config/secrets.yml
284
- - spec/dummy/config/application.rb
285
- - spec/dummy/config/initializers/mime_types.rb
286
- - spec/dummy/config/initializers/backtrace_silencers.rb
287
- - spec/dummy/config/initializers/wrap_parameters.rb
288
- - spec/dummy/config/initializers/assets.rb
289
- - spec/dummy/config/initializers/inflections.rb
290
- - spec/dummy/config/initializers/new_framework_defaults.rb
291
- - spec/dummy/config/initializers/filter_parameter_logging.rb
292
- - spec/dummy/config/initializers/scim_rails_config.rb
293
- - spec/dummy/config/initializers/session_store.rb
294
- - spec/dummy/config/initializers/cookies_serializer.rb
295
- - spec/dummy/config/initializers/application_controller_renderer.rb
296
- - spec/dummy/config/boot.rb
297
- - spec/dummy/config/puma.rb
298
- - spec/dummy/config/environments/test.rb
299
- - spec/dummy/config/environments/production.rb
300
- - spec/dummy/config/environments/development.rb
301
- - spec/dummy/config/locales/en.yml
279
+ - spec/spec_helper.rb
280
+ - spec/dummy/app/mailers/application_mailer.rb
281
+ - spec/dummy/app/models/group.rb
282
+ - spec/dummy/app/models/company.rb
283
+ - spec/dummy/app/models/group_user.rb
284
+ - spec/dummy/app/models/application_record.rb
285
+ - spec/dummy/app/models/user.rb
286
+ - spec/dummy/app/jobs/application_job.rb
287
+ - spec/dummy/app/controllers/application_controller.rb
288
+ - spec/dummy/app/views/layouts/application.html.erb
302
289
  - spec/dummy/app/views/layouts/mailer.html.erb
303
290
  - spec/dummy/app/views/layouts/mailer.text.erb
304
- - spec/dummy/app/views/layouts/application.html.erb
305
- - spec/dummy/app/channels/application_cable/channel.rb
306
- - spec/dummy/app/channels/application_cable/connection.rb
307
- - spec/dummy/app/jobs/application_job.rb
308
291
  - spec/dummy/app/assets/config/manifest.js
309
- - spec/dummy/app/assets/javascripts/application.js
310
292
  - spec/dummy/app/assets/javascripts/cable.js
293
+ - spec/dummy/app/assets/javascripts/application.js
311
294
  - spec/dummy/app/assets/stylesheets/application.css
312
295
  - spec/dummy/app/helpers/application_helper.rb
313
- - spec/dummy/app/controllers/application_controller.rb
314
- - spec/dummy/app/models/user.rb
315
- - spec/dummy/app/models/group.rb
316
- - spec/dummy/app/models/application_record.rb
317
- - spec/dummy/app/models/group_user.rb
318
- - spec/dummy/app/models/company.rb
319
- - spec/dummy/app/mailers/application_mailer.rb
320
- - spec/dummy/Rakefile
296
+ - spec/dummy/app/channels/application_cable/connection.rb
297
+ - spec/dummy/app/channels/application_cable/channel.rb
298
+ - spec/dummy/bin/update
299
+ - spec/dummy/bin/rake
321
300
  - spec/dummy/bin/setup
322
- - spec/dummy/bin/rails
323
301
  - spec/dummy/bin/bundle
324
- - spec/dummy/bin/rake
325
- - spec/dummy/bin/update
326
- - spec/dummy/public/500.html
327
- - spec/dummy/public/apple-touch-icon-precomposed.png
302
+ - spec/dummy/bin/rails
303
+ - spec/dummy/config/secrets.yml
304
+ - spec/dummy/config/routes.rb
305
+ - spec/dummy/config/locales/en.yml
306
+ - spec/dummy/config/cable.yml
307
+ - spec/dummy/config/environments/production.rb
308
+ - spec/dummy/config/environments/development.rb
309
+ - spec/dummy/config/environments/test.rb
310
+ - spec/dummy/config/spring.rb
311
+ - spec/dummy/config/environment.rb
312
+ - spec/dummy/config/application.rb
313
+ - spec/dummy/config/puma.rb
314
+ - spec/dummy/config/database.yml
315
+ - spec/dummy/config/boot.rb
316
+ - spec/dummy/config/initializers/application_controller_renderer.rb
317
+ - spec/dummy/config/initializers/backtrace_silencers.rb
318
+ - spec/dummy/config/initializers/mime_types.rb
319
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
320
+ - spec/dummy/config/initializers/session_store.rb
321
+ - spec/dummy/config/initializers/wrap_parameters.rb
322
+ - spec/dummy/config/initializers/new_framework_defaults.rb
323
+ - spec/dummy/config/initializers/assets.rb
324
+ - spec/dummy/config/initializers/cookies_serializer.rb
325
+ - spec/dummy/config/initializers/scim_rails_config.rb
326
+ - spec/dummy/config/initializers/inflections.rb
327
+ - spec/dummy/config.ru
328
+ - spec/dummy/put_group.http
329
+ - spec/dummy/Rakefile
328
330
  - spec/dummy/public/favicon.ico
329
- - spec/dummy/public/404.html
330
- - spec/dummy/public/apple-touch-icon.png
331
331
  - spec/dummy/public/422.html
332
+ - spec/dummy/public/apple-touch-icon.png
333
+ - spec/dummy/public/500.html
334
+ - spec/dummy/public/404.html
335
+ - spec/dummy/public/apple-touch-icon-precomposed.png
336
+ - spec/dummy/db/schema.rb
337
+ - spec/dummy/db/seeds.rb
338
+ - spec/dummy/db/test.sqlite3
339
+ - spec/dummy/db/migrate/20220117095407_add_country_to_users.rb
340
+ - spec/dummy/db/migrate/20220131090107_add_deletable_to_users.rb
341
+ - spec/dummy/db/migrate/20181206184304_create_users.rb
342
+ - spec/dummy/db/migrate/20210423075950_create_group_users.rb
343
+ - spec/dummy/db/migrate/20181206184313_create_companies.rb
344
+ - spec/dummy/db/migrate/20210423075859_create_groups.rb
345
+ - spec/dummy/db/development.sqlite3
346
+ - spec/dummy/log/test.log
347
+ - spec/dummy/log/development.log
348
+ - spec/dummy/tmp/restart.txt
349
+ - spec/libraries/scim_patch_operation_spec.rb
350
+ - spec/libraries/scim_patch_spec.rb
351
+ - spec/models/scim_query_parser_spec.rb
332
352
  - spec/support/factory_bot.rb
333
- - spec/support/scim_rails_config.rb
334
353
  - spec/support/auth_helper.rb
354
+ - spec/factories/group.rb
355
+ - spec/factories/company.rb
356
+ - spec/factories/user.rb
335
357
  - spec/lib/scim_rails/encoder_spec.rb
336
- - spec/controllers/scim_rails/scim_users_controller_spec.rb
337
358
  - spec/controllers/scim_rails/scim_users_request_spec.rb
338
- - spec/controllers/scim_rails/scim_groups_request_spec.rb
359
+ - spec/controllers/scim_rails/scim_users_controller_spec.rb
339
360
  - spec/controllers/scim_rails/scim_groups_controller_spec.rb
340
- - spec/libraries/scim_patch_spec.rb
341
- - spec/libraries/scim_patch_operation_spec.rb
342
- - spec/factories/user.rb
343
- - spec/factories/group.rb
344
- - spec/factories/company.rb
345
- - spec/spec_helper.rb
361
+ - spec/controllers/scim_rails/scim_groups_request_spec.rb
@@ -1,59 +0,0 @@
1
- # This file would normally be in config > initializers but
2
- # is included here because it is essentially a spec helper
3
-
4
- ScimRails.configure do |config|
5
- config.basic_auth_model = "Company"
6
- config.scim_users_model = "User"
7
-
8
- config.basic_auth_model_searchable_attribute = :subdomain
9
- config.basic_auth_model_authenticatable_attribute = :api_token
10
- config.scim_users_scope = :users
11
- config.scim_users_list_order = :id
12
-
13
- config.signing_algorithm = "HS256"
14
- config.signing_secret = "2d6806dd11c2fece2e81b8ca76dcb0062f5b08e28e3264e8ba1c44bbd3578b70"
15
-
16
- config.user_deprovision_method = :archive!
17
- config.user_reprovision_method = :unarchive!
18
-
19
- config.mutable_user_attributes = [
20
- :first_name,
21
- :last_name,
22
- :email
23
- ]
24
-
25
- config.queryable_user_attributes = {
26
- userName: :email,
27
- givenName: :first_name,
28
- familyName: :last_name,
29
- email: :email
30
- }
31
-
32
- config.mutable_user_attributes_schema = {
33
- name: {
34
- givenName: :first_name,
35
- familyName: :last_name
36
- },
37
- emails: [
38
- {
39
- value: :email
40
- }
41
- ]
42
- }
43
-
44
- config.user_schema = {
45
- schemas: ["urn:ietf:params:scim:schemas:core:2.0:User"],
46
- id: :id,
47
- userName: :email,
48
- name: {
49
- givenName: :first_name,
50
- familyName: :last_name
51
- },
52
- emails: [
53
- {
54
- value: :email
55
- },
56
- ],
57
- active: :unarchived?
58
- }
59
- end