summaryrefslogtreecommitdiffstats
path: root/users/middleware.py
diff options
context:
space:
mode:
Diffstat (limited to 'users/middleware.py')
-rw-r--r--users/middleware.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/users/middleware.py b/users/middleware.py
index e6d4036..9e7f50d 100644
--- a/users/middleware.py
+++ b/users/middleware.py
@@ -13,15 +13,21 @@ class IdentityMiddleware:
self.get_response = get_response
def __call__(self, request):
- identity_id = request.session.get("identity_id")
- if not identity_id:
- request.identity = None
- else:
- try:
- request.identity = Identity.objects.get(id=identity_id)
- User.objects.filter(pk=request.user.pk).update(last_seen=timezone.now())
- except Identity.DoesNotExist:
+ # The API middleware might have set identity already
+ if not hasattr(request, "identity"):
+ # See if we have one in the session
+ identity_id = request.session.get("identity_id")
+ if not identity_id:
request.identity = None
+ else:
+ # Pull it out of the DB and assign it
+ try:
+ request.identity = Identity.objects.get(id=identity_id)
+ User.objects.filter(pk=request.user.pk).update(
+ last_seen=timezone.now()
+ )
+ except Identity.DoesNotExist:
+ request.identity = None
response = self.get_response(request)
return response