Update.
This commit is contained in:
parent
993b5bfbb6
commit
1cdd8fba11
@ -1,12 +1,26 @@
|
|||||||
from functools import wraps
|
from functools import wraps
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
from aiohttp_session import get_session
|
from aiohttp_session import get_session
|
||||||
|
from ..services.user_service import UserService # Import UserService
|
||||||
|
|
||||||
def login_required(func):
|
def login_required(func):
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
async def wrapper(self, *args, **kwargs):
|
async def wrapper(self, *args, **kwargs):
|
||||||
session = await get_session(self.request)
|
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')
|
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 await func(self, *args, **kwargs)
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user