Init
This commit is contained in:
34
music_storage/core/middleware/current_request.py
Normal file
34
music_storage/core/middleware/current_request.py
Normal file
@@ -0,0 +1,34 @@
|
||||
import threading
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
|
||||
|
||||
_thread_local = threading.local()
|
||||
|
||||
|
||||
def get_current_request():
|
||||
"""Retrieve the current request stored in thread-local storage."""
|
||||
return getattr(_thread_local, "request", None)
|
||||
|
||||
|
||||
def get_current_user():
|
||||
"""Retrieve the user from the current request."""
|
||||
request = get_current_request()
|
||||
if request:
|
||||
return getattr(request, "user", None)
|
||||
return None
|
||||
|
||||
|
||||
class CurrentRequestMiddleware(MiddlewareMixin):
|
||||
"""Middleware to store the current request in thread-local storage.
|
||||
|
||||
Args:
|
||||
MiddlewareMixin : Base class for Django middleware.
|
||||
"""
|
||||
|
||||
def process_request(self, request):
|
||||
_thread_local.request = request
|
||||
|
||||
def process_response(self, request, response):
|
||||
if hasattr(_thread_local, "request"):
|
||||
del _thread_local.request
|
||||
return response
|
||||
Reference in New Issue
Block a user