diff --git a/retoors/helpers/auth.py b/retoors/helpers/auth.py index b037b82..41764ef 100644 --- a/retoors/helpers/auth.py +++ b/retoors/helpers/auth.py @@ -1,12 +1,26 @@ from functools import wraps from aiohttp import web from aiohttp_session import get_session +from ..services.user_service import UserService # Import UserService def login_required(func): @wraps(func) async def wrapper(self, *args, **kwargs): session = await get_session(self.request) - if 'user_email' not in session: + user_email = session.get('user_email') + + if not user_email: raise web.HTTPFound('/login') + + user_service: UserService = self.request.app["user_service"] + user = user_service.get_user_by_email(user_email) + + if not user: + # User not found in service, clear session and redirect to login + session.pop('user_email', None) + raise web.HTTPFound('/login') + + # Ensure the user object is available in the request for views + self.request["user"] = user return await func(self, *args, **kwargs) return wrapper