2025-02-19 16:25:48 +01:00

38 lines
1004 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