You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
789 B

import threading
from django.utils.deprecation import MiddlewareMixin
_active = threading.local()
def activate(user):
if user.is_anonymous:
_active.user = None
else:
_active.user = user.pk
def get_request_user():
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AnonymousUser
if not hasattr(_active, 'user'):
user = None
elif _active.user is None:
user = AnonymousUser()
else:
User = get_user_model()
user = User.objects.get(pk=_active.user)
return user
class RequestUserMiddleware(MiddlewareMixin):
def process_request(self, request):
activate(request.user)
'''
def process_response(self, request, response):
return response
'''