35 lines
989 B
Python
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
|