diff --git a/src/backend/app/users/user_crud.py b/src/backend/app/users/user_crud.py index 30d25ff4..06da4bec 100644 --- a/src/backend/app/users/user_crud.py +++ b/src/backend/app/users/user_crud.py @@ -188,6 +188,22 @@ async def update_user_profile( "certified_drone_operator": profile_update.certified_drone_operator, }, ) + + # If password is provided, update the users table + if profile_update.password: + password_update_query = """ + UPDATE users + SET password = :password + WHERE id = :user_id; + """ + await db.execute( + password_update_query, + { + "password": get_password_hash(profile_update.password), + "user_id": user_id, + }, + ) + return True except Exception as e: raise HTTPException(status_code=400, detail=str(e)) from e diff --git a/src/backend/app/users/user_schemas.py b/src/backend/app/users/user_schemas.py index d66407bc..92e19f14 100644 --- a/src/backend/app/users/user_schemas.py +++ b/src/backend/app/users/user_schemas.py @@ -88,3 +88,4 @@ class ProfileUpdate(BaseModel): experience_years: Optional[int] = None certified_drone_operator: Optional[bool] = False role: Optional[UserRole] = UserRole.DRONE_PILOT.name + password: Optional[str] = None