Skip to content

Commit 8306b25

Browse files
authored
Fix updating of global_id (#262)
1 parent 6a9f1b5 commit 8306b25

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

src/scim/mitol/scim/api.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,13 +255,13 @@ def _perform_sync_operations(
255255

256256
def _update_users(states: StateGenerator):
257257
"""Update the users to store the scim ids"""
258-
updates = []
259-
260-
for state in states:
261-
user = state.user
262-
user.scim_id = str(user.id) # normally done in User.save()
263-
user.scim_external_id = state.external_id
264-
user.global_id = state.external_id
265-
updates.append(user)
266-
267-
User.objects.bulk_update(updates, ["scim_id", "scim_external_id"])
258+
for batch in chunked(states, settings.MITOL_SCIM_KEYCLOAK_BULK_OPERATIONS_COUNT):
259+
updates = []
260+
for state in batch:
261+
user = state.user
262+
user.scim_id = str(user.id) # normally done in User.save()
263+
user.scim_external_id = state.external_id
264+
user.global_id = state.external_id
265+
updates.append(user)
266+
267+
User.objects.bulk_update(updates, ["global_id", "scim_id", "scim_external_id"])

tests/scim/test_api.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ def _callback(request):
230230
def test_sync_users_to_scim_remote(users: Users):
231231
for user in users.users:
232232
assert user.scim_external_id is None
233+
assert user.global_id == ""
233234

234235
api.sync_users_to_scim_remote(users.users)
235236

@@ -240,3 +241,4 @@ def test_sync_users_to_scim_remote(users: Users):
240241
assert user.scim_external_id is None
241242
else:
242243
assert user.scim_external_id == users.external_ids_by_user_id[user.id]
244+
assert user.global_id == users.external_ids_by_user_id[user.id]

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)