Files
qlockify-backend-deployment/core/middlewares/current_user.py

28 lines
685 B
Python

import contextlib
import logging
import threading
logger = logging.getLogger(__name__)
_local = threading.local()
def get_current_user():
return getattr(_local, "user", None)
class CurrentUserMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
previous_user = getattr(_local, "user", None)
_local.user = request.user
try:
return self.get_response(request)
finally:
if previous_user is None:
with contextlib.suppress(AttributeError):
del _local.user
else:
_local.user = previous_user