Spaces:
Sleeping
Sleeping
Commit
·
4b20e92
1
Parent(s):
d4a51a1
validation return user data
Browse files
main.py
CHANGED
|
@@ -326,9 +326,26 @@ async def validate_token(user_id: str, token: str, user_agent: str = Header(...)
|
|
| 326 |
# Use the helper function to validate the session
|
| 327 |
await validate_session(user_id=user_id, token=token, user_agent=user_agent)
|
| 328 |
|
| 329 |
-
|
| 330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 332 |
|
| 333 |
@auth_router.get("/search-users", response_model=List[str])
|
| 334 |
async def search_users(query: str):
|
|
@@ -364,7 +381,7 @@ async def get_user_id(username: str):
|
|
| 364 |
# Admin Routes
|
| 365 |
@admin_router.get("/users", response_model=List[UserResponse])
|
| 366 |
async def get_all_users(user_id: str, token: str, user_agent: str = Header(...)):
|
| 367 |
-
await
|
| 368 |
|
| 369 |
admin_query = supabase.table("users").select("access_level").eq("user_id", user_id).execute()
|
| 370 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
@@ -385,7 +402,7 @@ async def get_all_users(user_id: str, token: str, user_agent: str = Header(...))
|
|
| 385 |
|
| 386 |
@admin_router.get("/user/{user_id}", response_model=UserResponse)
|
| 387 |
async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = Header(...)):
|
| 388 |
-
await
|
| 389 |
|
| 390 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 391 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
@@ -409,7 +426,7 @@ async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = He
|
|
| 409 |
|
| 410 |
@admin_router.put("/user/{user_id}", response_model=UserResponse)
|
| 411 |
async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUserRequest, user_agent: str = Header(...)):
|
| 412 |
-
await
|
| 413 |
|
| 414 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 415 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
@@ -441,7 +458,7 @@ async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUs
|
|
| 441 |
|
| 442 |
@admin_router.put("/user/{user_id}/access-level")
|
| 443 |
async def update_access_level(admin_id: str, token: str, user_id: str, request: UpdateAccessLevelRequest, user_agent: str = Header(...)):
|
| 444 |
-
await
|
| 445 |
|
| 446 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 447 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
@@ -475,7 +492,7 @@ async def update_access_level(admin_id: str, token: str, user_id: str, request:
|
|
| 475 |
|
| 476 |
@auth_router.put("/user/update", response_model=UserResponse)
|
| 477 |
async def update_own_data(user_id: str,token: str, request: UpdateUserRequest, user_agent: str = Header(...)):
|
| 478 |
-
await
|
| 479 |
|
| 480 |
update_data = {}
|
| 481 |
if request.password:
|
|
|
|
| 326 |
# Use the helper function to validate the session
|
| 327 |
await validate_session(user_id=user_id, token=token, user_agent=user_agent)
|
| 328 |
|
| 329 |
+
user_query = supabase.table("users").select("*").eq("user_id", user_id).execute()
|
| 330 |
+
|
| 331 |
+
# If user not found or password verification fails, raise an error
|
| 332 |
+
if not user_query.data:
|
| 333 |
+
raise HTTPException(
|
| 334 |
+
status_code=status.HTTP_404_NOT_FOUND, detail="User not found"
|
| 335 |
+
)
|
| 336 |
+
|
| 337 |
+
# Extract user details
|
| 338 |
+
user = user_query.data[0]
|
| 339 |
|
| 340 |
+
# Return the login response with relevant user details
|
| 341 |
+
return LoginResponse(
|
| 342 |
+
user_id=user["user_id"],
|
| 343 |
+
username=user["username"],
|
| 344 |
+
email=user["email"],
|
| 345 |
+
access_level=user["access_level"],
|
| 346 |
+
date_joined=(user["date_joined"]),
|
| 347 |
+
access_token=token
|
| 348 |
+
)
|
| 349 |
|
| 350 |
@auth_router.get("/search-users", response_model=List[str])
|
| 351 |
async def search_users(query: str):
|
|
|
|
| 381 |
# Admin Routes
|
| 382 |
@admin_router.get("/users", response_model=List[UserResponse])
|
| 383 |
async def get_all_users(user_id: str, token: str, user_agent: str = Header(...)):
|
| 384 |
+
await validate_session(user_id, token, user_agent)
|
| 385 |
|
| 386 |
admin_query = supabase.table("users").select("access_level").eq("user_id", user_id).execute()
|
| 387 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
|
|
| 402 |
|
| 403 |
@admin_router.get("/user/{user_id}", response_model=UserResponse)
|
| 404 |
async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = Header(...)):
|
| 405 |
+
await validate_session(admin_id, token, user_agent)
|
| 406 |
|
| 407 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 408 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
|
|
| 426 |
|
| 427 |
@admin_router.put("/user/{user_id}", response_model=UserResponse)
|
| 428 |
async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUserRequest, user_agent: str = Header(...)):
|
| 429 |
+
await validate_session(admin_id, token, user_agent)
|
| 430 |
|
| 431 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 432 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
|
|
| 458 |
|
| 459 |
@admin_router.put("/user/{user_id}/access-level")
|
| 460 |
async def update_access_level(admin_id: str, token: str, user_id: str, request: UpdateAccessLevelRequest, user_agent: str = Header(...)):
|
| 461 |
+
await validate_session(admin_id, token, user_agent)
|
| 462 |
|
| 463 |
admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
|
| 464 |
if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
|
|
|
|
| 492 |
|
| 493 |
@auth_router.put("/user/update", response_model=UserResponse)
|
| 494 |
async def update_own_data(user_id: str,token: str, request: UpdateUserRequest, user_agent: str = Header(...)):
|
| 495 |
+
await validate_session(user_id, token, user_agent)
|
| 496 |
|
| 497 |
update_data = {}
|
| 498 |
if request.password:
|