devise_scim 0.1.18 → 0.2.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/CHANGELOG.md +31 -0
- data/app/controllers/devise_scim/users_controller.rb +2 -4
- data/lib/devise_scim/filter/arel_visitor.rb +1 -2
- data/lib/devise_scim/filter/parser.rb +2 -4
- data/lib/devise_scim/rspec/shared_examples/discovery_endpoints.rb +1 -2
- data/lib/devise_scim/rspec/shared_examples/groups_endpoint.rb +1 -2
- data/lib/devise_scim/rspec/shared_examples/users_endpoint.rb +1 -2
- data/lib/devise_scim/scim/group.rb +1 -2
- data/lib/devise_scim/scim/user.rb +3 -6
- data/lib/devise_scim/scim_adapter.rb +3 -3
- data/lib/devise_scim/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 85003e82fdef6a8a38f12b122754a717aeab894a9a3c602d6030851c93f9d8ad
|
|
4
|
+
data.tar.gz: 57a0e4ef758ecfc8e19211df5950c04dc069f6aef26d088d189cf66360229852
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e28cc1288de5943dc7b6931526b0a4ad33c751a547eeda4ba24937d177011763ce78a5ba895dd3fbea2286cfb00352f69e2d2ef9cffbdc3b5e6587988c2b3723
|
|
7
|
+
data.tar.gz: e1c4f758b123a50c53fb6e8b36be816c2a821c1bbfc8517e9848cbb60dc8ab726548b96251f39453e88e3c862a5063fef77a9207be0e22cf93f238315edeb85e
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.2.0] - 2026-10-26
|
|
4
|
+
|
|
5
|
+
- Fix offenses flagged by RuboCop 1.92
|
|
6
|
+
- chore(deps): bump ruby/setup-ruby from 1.324.0 to 1.329.0
|
|
7
|
+
- chore(deps-dev): bump sqlite3 from 2.9.6 to 2.10.0
|
|
8
|
+
- chore(deps): bump rubocop from 1.91.0 to 1.92.0
|
|
9
|
+
- chore(deps-dev): bump brakeman from 8.0.6 to 8.1.0
|
|
10
|
+
- chore(deps): bump rubocop from 1.90.0 to 1.91.0
|
|
11
|
+
- chore(deps-dev): bump doorkeeper from 5.9.6 to 5.9.9
|
|
12
|
+
- chore(deps): bump ruby/setup-ruby from 1.321.0 to 1.324.0
|
|
13
|
+
- chore(deps): bump codecov/codecov-action from 7.0.0 to 7.1.1
|
|
14
|
+
- chore(deps-dev): bump simplecov from 1.1.1 to 1.2.0
|
|
15
|
+
- chore(deps): bump rubocop from 1.89.0 to 1.90.0
|
|
16
|
+
- chore(deps-dev): bump brakeman from 8.0.5 to 8.0.6
|
|
17
|
+
- chore(deps-dev): bump sqlite3 from 2.9.5 to 2.9.6
|
|
18
|
+
- chore(deps-dev): bump simplecov from 1.0.3 to 1.1.1
|
|
19
|
+
- chore(deps-dev): bump doorkeeper from 5.9.5 to 5.9.6
|
|
20
|
+
- chore(deps-dev): bump doorkeeper from 5.9.3 to 5.9.5
|
|
21
|
+
- chore(deps): bump rubocop from 1.88.2 to 1.89.0
|
|
22
|
+
- chore(deps): bump activestorage in the bundler group across 1 directory
|
|
23
|
+
- chore(deps-dev): bump simplecov from 1.0.2 to 1.0.3
|
|
24
|
+
- chore(deps): bump ruby/setup-ruby from 1.319.0 to 1.321.0
|
|
25
|
+
- chore(deps-dev): bump simplecov-cobertura from 3.2.0 to 4.0.0
|
|
26
|
+
- chore(deps): bump ruby/setup-ruby from 1.314.0 to 1.319.0
|
|
27
|
+
- chore(deps): bump rails-html-sanitizer
|
|
28
|
+
- chore(deps): bump actions/checkout from 7.0.0 to 7.0.1
|
|
29
|
+
- chore(deps): bump the bundler group across 1 directory with 2 updates
|
|
30
|
+
- chore(deps): bump rubocop from 1.88.1 to 1.88.2
|
|
31
|
+
- chore(deps): bump websocket-driver
|
|
32
|
+
- chore(deps): bump rubocop from 1.88.0 to 1.88.1
|
|
33
|
+
|
|
3
34
|
## [0.1.18] - 2026-07-01
|
|
4
35
|
|
|
5
36
|
- chore(deps-dev): bump doorkeeper from 5.9.2 to 5.9.3
|
|
@@ -227,7 +227,7 @@ module DeviseScim
|
|
|
227
227
|
ops.each { |op| apply_op(user, op) }
|
|
228
228
|
end
|
|
229
229
|
|
|
230
|
-
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
230
|
+
# rubocop:disable-next Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
231
231
|
def apply_op(user, patch_op)
|
|
232
232
|
return apply_valuemap(user, patch_op.value) unless patch_op.raw_path
|
|
233
233
|
|
|
@@ -245,9 +245,8 @@ module DeviseScim
|
|
|
245
245
|
user.last_name = patch_op.value if col?(:last_name)
|
|
246
246
|
end
|
|
247
247
|
end
|
|
248
|
-
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
249
248
|
|
|
250
|
-
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
249
|
+
# rubocop:disable-next Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
251
250
|
def apply_valuemap(user, value)
|
|
252
251
|
return unless value.is_a?(Hash)
|
|
253
252
|
|
|
@@ -261,7 +260,6 @@ module DeviseScim
|
|
|
261
260
|
end
|
|
262
261
|
end
|
|
263
262
|
end
|
|
264
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
265
263
|
|
|
266
264
|
# ── helpers ────────────────────────────────────────────────────────────────
|
|
267
265
|
|
|
@@ -36,7 +36,7 @@ module DeviseScim
|
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
|
39
|
+
# rubocop:disable-next Metrics/CyclomaticComplexity
|
|
40
40
|
def visit_comparison(node)
|
|
41
41
|
col_name = SCIM_TO_AR[node.attr_path] || node.attr_path
|
|
42
42
|
col = resolve_column(col_name)
|
|
@@ -56,7 +56,6 @@ module DeviseScim
|
|
|
56
56
|
else raise InvalidFilter, "Unknown operator '#{node.op}'"
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
|
60
59
|
|
|
61
60
|
def visit_attr_path(node)
|
|
62
61
|
col_name = SCIM_TO_AR[node.attribute] || node.attribute
|
|
@@ -34,7 +34,7 @@ module DeviseScim
|
|
|
34
34
|
|
|
35
35
|
private
|
|
36
36
|
|
|
37
|
-
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
37
|
+
# rubocop:disable-next Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
38
38
|
def tokenize(str)
|
|
39
39
|
tokens = []
|
|
40
40
|
s = str.strip
|
|
@@ -94,7 +94,6 @@ module DeviseScim
|
|
|
94
94
|
end
|
|
95
95
|
tokens
|
|
96
96
|
end
|
|
97
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
98
97
|
|
|
99
98
|
def parse_or
|
|
100
99
|
left = parse_and
|
|
@@ -114,7 +113,7 @@ module DeviseScim
|
|
|
114
113
|
left
|
|
115
114
|
end
|
|
116
115
|
|
|
117
|
-
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
116
|
+
# rubocop:disable-next Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
118
117
|
def parse_primary
|
|
119
118
|
if current&.type == :lparen
|
|
120
119
|
advance
|
|
@@ -145,7 +144,6 @@ module DeviseScim
|
|
|
145
144
|
raise ParseError, "Expected comparator after '#{attr}', got #{current&.value.inspect}"
|
|
146
145
|
end
|
|
147
146
|
end
|
|
148
|
-
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
149
147
|
|
|
150
148
|
def extract_sub_attr
|
|
151
149
|
return nil unless current&.type == :dot
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# rubocop:disable Metrics/BlockLength
|
|
3
|
+
# rubocop:disable-next Metrics/BlockLength
|
|
4
4
|
RSpec.shared_examples "SCIM discovery endpoints" do |_options = {}|
|
|
5
5
|
include DeviseScim::RSpec::ScimHelpers
|
|
6
6
|
|
|
@@ -91,4 +91,3 @@ RSpec.shared_examples "SCIM discovery endpoints" do |_options = {}|
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
|
-
# rubocop:enable Metrics/BlockLength
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# rubocop:disable Metrics/BlockLength
|
|
3
|
+
# rubocop:disable-next Metrics/BlockLength
|
|
4
4
|
RSpec.shared_examples "a SCIM Groups endpoint" do |_options = {}|
|
|
5
5
|
include DeviseScim::RSpec::ScimHelpers
|
|
6
6
|
|
|
@@ -145,4 +145,3 @@ RSpec.shared_examples "a SCIM Groups endpoint" do |_options = {}|
|
|
|
145
145
|
end
|
|
146
146
|
end
|
|
147
147
|
end
|
|
148
|
-
# rubocop:enable Metrics/BlockLength
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# rubocop:disable Metrics/BlockLength
|
|
3
|
+
# rubocop:disable-next Metrics/BlockLength
|
|
4
4
|
RSpec.shared_examples "a SCIM Users endpoint" do |options = {}|
|
|
5
5
|
include DeviseScim::RSpec::ScimHelpers
|
|
6
6
|
|
|
@@ -298,4 +298,3 @@ RSpec.shared_examples "a SCIM Users endpoint" do |options = {}|
|
|
|
298
298
|
end
|
|
299
299
|
end
|
|
300
300
|
end
|
|
301
|
-
# rubocop:enable Metrics/BlockLength
|
|
@@ -6,9 +6,8 @@ module DeviseScim
|
|
|
6
6
|
module Scim
|
|
7
7
|
GROUP_SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:Group"
|
|
8
8
|
|
|
9
|
-
# rubocop:disable Lint/StructNewOverride
|
|
9
|
+
# rubocop:disable-next Lint/StructNewOverride
|
|
10
10
|
Member = Struct.new(:value, :display, :ref, keyword_init: true)
|
|
11
|
-
# rubocop:enable Lint/StructNewOverride
|
|
12
11
|
|
|
13
12
|
class Group
|
|
14
13
|
SCHEMAS = [GROUP_SCHEMA].freeze
|
|
@@ -14,7 +14,7 @@ module DeviseScim
|
|
|
14
14
|
Meta = Struct.new(:resource_type, :created, :last_modified, :version, :location,
|
|
15
15
|
keyword_init: true)
|
|
16
16
|
|
|
17
|
-
# rubocop:disable Metrics/ClassLength
|
|
17
|
+
# rubocop:disable-next Metrics/ClassLength
|
|
18
18
|
class User
|
|
19
19
|
SCHEMAS = [USER_SCHEMA].freeze
|
|
20
20
|
|
|
@@ -35,7 +35,7 @@ module DeviseScim
|
|
|
35
35
|
|
|
36
36
|
private
|
|
37
37
|
|
|
38
|
-
# rubocop:disable Metrics/AbcSize
|
|
38
|
+
# rubocop:disable-next Metrics/AbcSize
|
|
39
39
|
def assign_scalars(user, hash)
|
|
40
40
|
user.id = hash["id"]
|
|
41
41
|
user.external_id = hash["externalId"]
|
|
@@ -50,7 +50,6 @@ module DeviseScim
|
|
|
50
50
|
user.timezone = hash["timezone"]
|
|
51
51
|
user.active = hash.key?("active") ? hash["active"] : true
|
|
52
52
|
end
|
|
53
|
-
# rubocop:enable Metrics/AbcSize
|
|
54
53
|
|
|
55
54
|
def assign_name(user, hash)
|
|
56
55
|
return unless (n = hash["name"])
|
|
@@ -78,7 +77,7 @@ module DeviseScim
|
|
|
78
77
|
end
|
|
79
78
|
end
|
|
80
79
|
|
|
81
|
-
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
80
|
+
# rubocop:disable-next Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
82
81
|
def to_h
|
|
83
82
|
h = base_hash.compact
|
|
84
83
|
h["schemas"] = SCHEMAS
|
|
@@ -89,7 +88,6 @@ module DeviseScim
|
|
|
89
88
|
h["meta"] = serialize_meta(meta, "User") if meta
|
|
90
89
|
h
|
|
91
90
|
end
|
|
92
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
93
91
|
|
|
94
92
|
def to_json(*)
|
|
95
93
|
to_h.to_json
|
|
@@ -156,6 +154,5 @@ module DeviseScim
|
|
|
156
154
|
value.respond_to?(:iso8601) ? value.iso8601 : value
|
|
157
155
|
end
|
|
158
156
|
end
|
|
159
|
-
# rubocop:enable Metrics/ClassLength
|
|
160
157
|
end
|
|
161
158
|
end
|
|
@@ -19,11 +19,11 @@ module DeviseScim
|
|
|
19
19
|
base_user_attributes
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def after_provision;
|
|
22
|
+
def after_provision; end
|
|
23
23
|
def after_deprovision; end
|
|
24
24
|
|
|
25
|
-
def handle_group_create;
|
|
26
|
-
def handle_group_update;
|
|
25
|
+
def handle_group_create; end
|
|
26
|
+
def handle_group_update; end
|
|
27
27
|
def handle_group_destroy; end
|
|
28
28
|
|
|
29
29
|
def to_scim
|
data/lib/devise_scim/version.rb
CHANGED