Update services/auth.py
Browse files- services/auth.py +9 -16
services/auth.py
CHANGED
@@ -19,6 +19,7 @@ def get_user(db: Session, username: str) -> Optional[User]:
|
|
19 |
user = db.exec(statement).first()
|
20 |
return user
|
21 |
|
|
|
22 |
def create_user_in_db(user_data: UserCreate) -> Optional[User]:
|
23 |
hashed_password = get_password_hash(user_data.password)
|
24 |
db_user = User(
|
@@ -26,28 +27,20 @@ def create_user_in_db(user_data: UserCreate) -> Optional[User]:
|
|
26 |
hashed_password=hashed_password,
|
27 |
email=user_data.email,
|
28 |
full_name=user_data.full_name
|
|
|
29 |
)
|
30 |
try:
|
31 |
-
with get_session_context() as db:
|
32 |
-
# Check if user already exists
|
33 |
existing_user = get_user(db, user_data.username)
|
34 |
if existing_user:
|
35 |
app_logger.warning(f"User {user_data.username} already exists.")
|
36 |
-
return None
|
37 |
|
38 |
db.add(db_user)
|
39 |
-
db.commit() # Commit is handled by context manager
|
40 |
-
db.refresh(db_user)
|
41 |
-
|
|
|
42 |
except Exception as e:
|
43 |
app_logger.error(f"Error creating user {user_data.username}: {e}")
|
44 |
-
return None
|
45 |
-
|
46 |
-
def authenticate_user(username: str, password: str) -> Optional[User]:
|
47 |
-
with get_session_context() as db:
|
48 |
-
user = get_user(db, username)
|
49 |
-
if not user:
|
50 |
-
return None
|
51 |
-
if not verify_password(password, user.hashed_password):
|
52 |
-
return None
|
53 |
-
return user
|
|
|
19 |
user = db.exec(statement).first()
|
20 |
return user
|
21 |
|
22 |
+
# In services/auth.py
|
23 |
def create_user_in_db(user_data: UserCreate) -> Optional[User]:
|
24 |
hashed_password = get_password_hash(user_data.password)
|
25 |
db_user = User(
|
|
|
27 |
hashed_password=hashed_password,
|
28 |
email=user_data.email,
|
29 |
full_name=user_data.full_name
|
30 |
+
# The 'chat_sessions' attribute is an empty list by default here, not yet loaded from DB
|
31 |
)
|
32 |
try:
|
33 |
+
with get_session_context() as db: # Session starts here
|
|
|
34 |
existing_user = get_user(db, user_data.username)
|
35 |
if existing_user:
|
36 |
app_logger.warning(f"User {user_data.username} already exists.")
|
37 |
+
return None
|
38 |
|
39 |
db.add(db_user)
|
40 |
+
# db.commit() # Commit is handled by context manager
|
41 |
+
db.refresh(db_user) # This makes sure all attributes are up-to-date from DB *within this session*
|
42 |
+
# Session closes here. db_user is now "detached".
|
43 |
+
return db_user # Returning the detached db_user object
|
44 |
except Exception as e:
|
45 |
app_logger.error(f"Error creating user {user_data.username}: {e}")
|
46 |
+
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|