From 564f9e2c586428604d706573f50a99fba9fee879 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Tue, 17 Nov 2015 12:41:18 -0500 Subject: [PATCH] Fix an issue reauthing as a social auth user If a social auth user is deleted and then attemnpts to relogin after the old user object has been removed then it can cause an error. So here we'll add an extra lookup for the user just to verify --- awx/main/middleware.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/awx/main/middleware.py b/awx/main/middleware.py index b36ac9b53c..84df036e74 100644 --- a/awx/main/middleware.py +++ b/awx/main/middleware.py @@ -5,7 +5,7 @@ import logging import threading import uuid -from django.contrib.auth.models import User +from django.contrib.auth.models import User, AnonymousUser from django.db.models.signals import post_save from django.db import IntegrityError from django.http import HttpResponseRedirect @@ -62,7 +62,12 @@ class ActivityStreamMiddleware(threading.local): def set_actor(self, user, sender, instance, **kwargs): if sender == ActivityStream: if isinstance(user, User) and instance.actor is None: - instance.actor = user + user = User.objects.filter(id=user.id) + if user.exists(): + user = user[0] + instance.actor = user + else: + instance.actor = AnonymouseUser instance.save(update_fields=['actor']) else: if instance.id not in self.instance_ids: