hyf-backend/th_agenter/core/user_utils.py

76 lines
2.0 KiB
Python

"""User utility functions for easy access to current user context."""
from typing import Optional
from ..models.user import User
from .context import UserContext
def get_current_user() -> Optional[User]:
"""Get current authenticated user from context.
Returns:
Current user if authenticated, None otherwise
"""
return UserContext.get_current_user()
def get_current_user_id() -> Optional[int]:
"""Get current authenticated user ID from context.
Returns:
Current user ID if authenticated, None otherwise
"""
return UserContext.get_current_user_id()
def require_current_user() -> User:
"""Get current authenticated user from context, raise exception if not found.
Returns:
Current user
Raises:
HTTPException: If no authenticated user in context
"""
return UserContext.require_current_user()
def require_current_user_id() -> int:
"""Get current authenticated user ID from context, raise exception if not found.
Returns:
Current user ID
Raises:
HTTPException: If no authenticated user in context
"""
return UserContext.require_current_user_id()
def is_user_authenticated() -> bool:
"""Check if there is an authenticated user in the current context.
Returns:
True if user is authenticated, False otherwise
"""
return UserContext.get_current_user() is not None
def get_current_username() -> Optional[str]:
"""Get current authenticated user's username from context.
Returns:
Current user's username if authenticated, None otherwise
"""
user = UserContext.get_current_user()
return user.username if user else None
def get_current_user_email() -> Optional[str]:
"""Get current authenticated user's email from context.
Returns:
Current user's email if authenticated, None otherwise
"""
user = UserContext.get_current_user()
return user.email if user else None