diff --git a/src/auth_middleware.py b/src/auth_middleware.py index d5c8aa9d..44d1b2f0 100644 --- a/src/auth_middleware.py +++ b/src/auth_middleware.py @@ -33,15 +33,8 @@ def require_auth(session_manager): from session_manager import User from datetime import datetime - request.state.user = User( - user_id="anonymous", - email="anonymous@localhost", - name="Anonymous User", - picture=None, - provider="none", - created_at=datetime.now(), - last_login=datetime.now(), - ) + from session_manager import AnonymousUser + request.state.user = AnonymousUser() request.state.jwt_token = None # No JWT in no-auth mode logger.debug("Set user_id=anonymous, jwt_token=None") return await handler(request) @@ -75,15 +68,8 @@ def optional_auth(session_manager): from session_manager import User from datetime import datetime - request.state.user = User( - user_id="anonymous", - email="anonymous@localhost", - name="Anonymous User", - picture=None, - provider="none", - created_at=datetime.now(), - last_login=datetime.now(), - ) + from session_manager import AnonymousUser + request.state.user = AnonymousUser() request.state.jwt_token = None # No JWT in no-auth mode else: user = get_current_user(request, session_manager) diff --git a/src/session_manager.py b/src/session_manager.py index f7ea2893..494d0061 100644 --- a/src/session_manager.py +++ b/src/session_manager.py @@ -29,6 +29,19 @@ class User: if self.last_login is None: self.last_login = datetime.now() +class AnonymousUser(User): + """Anonymous user""" + + def __init__(self): + super().__init__( + user_id="anonymous", + email="anonymous@localhost", + name="Anonymous User", + picture=None, + provider="none", + ) + + class SessionManager: """Manages user sessions and JWT tokens""" @@ -209,14 +222,5 @@ class SessionManager: def _create_anonymous_jwt(self) -> str: """Create JWT token for anonymous user in no-auth mode""" - anonymous_user = User( - user_id="anonymous", - email="anonymous@localhost", - name="Anonymous User", - picture=None, - provider="none", - created_at=datetime.now(), - last_login=datetime.now(), - ) - + anonymous_user = AnonymousUser() return self.create_jwt_token(anonymous_user)