scimaenaga 0.5.0 → 0.7.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 (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