2025-02-19 14:48:56 +01:00

35 lines
989 B
Python

from ..errors.not_authenticated import NotAuthenticatedError
from ..models.user import User
from ..settings import get_settings
from ..repositories.user_repository import UserRepository
from typing import Annotated
from fastapi import Depends, Request
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