File tree Expand file tree Collapse file tree 1 file changed +28
-3
lines changed Expand file tree Collapse file tree 1 file changed +28
-3
lines changed Original file line number Diff line number Diff line change 2
2
import os
3
3
import secrets
4
4
from collections import defaultdict
5
+ from logging import getLogger
5
6
from typing import Dict , List , Optional
6
7
from uuid import UUID
7
8
30
31
SESSION_COOKIE_NAME = "user_session"
31
32
cookie_scheme = APIKeyCookie (name = SESSION_COOKIE_NAME , auto_error = False )
32
33
34
+ logger = getLogger (__name__ )
35
+
33
36
34
37
def get_redirect_uri (request ):
35
38
s = "https"
@@ -122,9 +125,31 @@ def get_user_from_fief_user(fief_user: FiefUserInfo) -> User:
122
125
db = get_open_sensor_db ()
123
126
users_db = db ["Users" ]
124
127
fief_user_id = fief_user ["sub" ]
125
- user = users_db .find_one ({"_id" : fief_user_id })
126
- user = User (** user )
127
- return user
128
+ logger .debug (f"Fief user ID: { fief_user_id } " )
129
+
130
+ try :
131
+ binary_uuid = Binary .from_uuid (UUID (fief_user_id ))
132
+ logger .debug (f"Binary UUID: { binary_uuid } " )
133
+ except ValueError as e :
134
+ logger .error (f"Invalid UUID: { e } " )
135
+ return None
136
+
137
+ user = users_db .find_one ({"_id" : binary_uuid })
138
+ logger .debug (f"Found user: { user } " )
139
+
140
+ if user is None :
141
+ logger .warning (f"No user found for Fief user ID: { fief_user_id } " )
142
+ return None
143
+
144
+ try :
145
+ user_obj = User (** user )
146
+ return user_obj
147
+ except TypeError as e :
148
+ logger .error (f"Error creating User object: { e } " )
149
+ return None
150
+
151
+ logger .warning ("No Fief user provided" )
152
+ return None
128
153
129
154
130
155
def migration_complete (migration_name : str ) -> bool :
You can’t perform that action at this time.
0 commit comments