diff --git a/src/auth_middleware.py b/src/auth_middleware.py index 81248e57..d9f19e8c 100644 --- a/src/auth_middleware.py +++ b/src/auth_middleware.py @@ -30,15 +30,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 print(f"[DEBUG] Set user_id=anonymous, jwt_token=None") return await handler(request) @@ -72,15 +65,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 b909c164..0d55acd7 100644 --- a/src/session_manager.py +++ b/src/session_manager.py @@ -26,6 +26,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""" @@ -199,14 +212,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)