This commit is contained in:
retoor 2025-11-08 20:51:30 +01:00
parent 993b5bfbb6
commit 1cdd8fba11

View File

@ -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