30 lines
960 B
Python
30 lines
960 B
Python
# packetserver/http/routers/profile.py
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from packetserver.http.dependencies import get_current_http_user
|
|
from packetserver.http.auth import HttpUser
|
|
|
|
router = APIRouter(prefix="/api/v1", tags=["auth"])
|
|
|
|
|
|
@router.get("/profile")
|
|
async def profile(current_user: HttpUser = Depends(get_current_http_user)):
|
|
username = current_user.username
|
|
|
|
from packetserver.runners.http_server import get_db_connection
|
|
conn = get_db_connection()
|
|
root = conn.root()
|
|
|
|
# Get main BBS User and safe dict
|
|
main_users = root.get('users', {})
|
|
bbs_user = main_users.get(username)
|
|
safe_profile = bbs_user.to_safe_dict() if bbs_user else {}
|
|
rf_enabled = current_user.is_rf_enabled(conn)
|
|
|
|
return {
|
|
**safe_profile,
|
|
"http_enabled": current_user.enabled,
|
|
"rf_enabled": rf_enabled,
|
|
"http_created_at": current_user.created_at,
|
|
"http_last_login": current_user.last_login,
|
|
} |