Update.
This commit is contained in:
parent
993b5bfbb6
commit
1cdd8fba11
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user