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, ) -> None: if not get_settings().environment == "development": raise NotImplementedError("AuthProvider is only implemented for development environment.") self._authenticated_user = self._get_mocked_user() def _get_mocked_user(self): return User( email="test@test.com", username="test", password_hash="test", ) @property def is_authenticated(self) -> bool: return self._authenticated_user is not None @property def user(self) -> User: """ Returns the authenticated user. """ if not self._authenticated_user: raise NotAuthenticatedError() return self._authenticated_user