fix: wrap Google OAuth DB connection in try/finally to ensure it is always closed
The system DB connection opened in google_callback is now closed in a finally block, so it is released even when an exception occurs between open and close.
This commit is contained in:
parent
471982d3f9
commit
7d036760f5
1 changed files with 8 additions and 6 deletions
|
|
@ -77,13 +77,15 @@ async def google_callback(request: Request):
|
|||
import uuid
|
||||
|
||||
conn = get_system_db()
|
||||
repo = UserRepository(conn)
|
||||
user = repo.get_by_email(email)
|
||||
if not user:
|
||||
user_id = str(uuid.uuid4())
|
||||
repo.create(id=user_id, email=email, name=name, role="analyst")
|
||||
try:
|
||||
repo = UserRepository(conn)
|
||||
user = repo.get_by_email(email)
|
||||
conn.close()
|
||||
if not user:
|
||||
user_id = str(uuid.uuid4())
|
||||
repo.create(id=user_id, email=email, name=name, role="analyst")
|
||||
user = repo.get_by_email(email)
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
# Issue JWT
|
||||
jwt_token = create_access_token(user["id"], user["email"], user["role"])
|
||||
|
|
|
|||
Loading…
Reference in a new issue