2025-02-19 16:59:34 +01:00

36 lines
908 B
Python

from fastapi import Request
from ..errors.not_authenticated import NotAuthenticatedError
from ..models.user import User
from ..settings import get_settings
class AuthContext:
"""
Provides authentication context for the current request.
"""
def __init__(
self,
request: Request,
) -> None:
if not get_settings().environment == "development":
raise NotImplementedError(
"AuthProvider is only implemented for development environment."
)
self._authenticated_user = request.state.user
@property
def is_authenticated(self) -> bool:
return bool(self._authenticated_user)
@property
def user(self) -> User:
"""
Returns the authenticated user.
"""
if not self._authenticated_user:
raise NotAuthenticatedError()
return self._authenticated_user