Skip to content

Commit 90e0f6e

Browse files
committed
CH-242 move transaction to avoid unnecessary db connections
1 parent 7b32035 commit 90e0f6e

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

  • infrastructure/common-images/cloudharness-django/libraries/cloudharness-django/cloudharness_django

infrastructure/common-images/cloudharness-django/libraries/cloudharness-django/cloudharness_django/middleware.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ def _get_user(kc_user_id: str) -> User:
5151
user_svc = get_user_service()
5252
kc_user = user_svc.auth_client.get_current_user()
5353
try:
54-
# sync_kc_user is atomic and guarantees Member creation
55-
user = user_svc.sync_kc_user(kc_user)
56-
user_svc.sync_kc_user_groups(kc_user)
54+
with transaction.atomic():
55+
# sync_kc_user is atomic and guarantees Member creation
56+
user = user_svc.sync_kc_user(kc_user)
57+
user_svc.sync_kc_user_groups(kc_user)
5758

5859
# SAFETY CHECK: Final verification that Member exists
5960
try:
@@ -111,7 +112,6 @@ def __init__(self, get_response=None):
111112
# One-time configuration and initialization.
112113
self.get_response = get_response
113114

114-
@transaction.atomic
115115
def __call__(self, request):
116116

117117
authentication_token = get_authentication_token()
@@ -147,7 +147,6 @@ def __call__(self, request):
147147
# Safe to assign - user has a valid Member
148148
request.user = user
149149
request._cached_user = user
150-
151150
except:
152151
# This should NEVER happen due to _get_user safety checks,
153152
# but if it does, DO NOT assign the user - keep anonymous
@@ -156,7 +155,7 @@ def __call__(self, request):
156155
# Don't assign user - request will remain anonymous
157156
# elif not request.path.startswith('/admin/'):
158157
# logout(request)
159-
if kc_user_id:
158+
if kc_user_id and user:
160159
cache.set(cache_key, user, timeout=USER_CACHE_TTL)
161160
return self.get_response(request)
162161

0 commit comments

Comments
 (0)