From 33065db7b9a3b540b5fbb44e494887e7ba3c85ee Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Wed, 20 Mar 2019 14:59:40 -0500
Subject: [PATCH] Fix intermittent IntegrityError in control room group
 middleware

---
 gracedb/ligoauth/middleware.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gracedb/ligoauth/middleware.py b/gracedb/ligoauth/middleware.py
index 3b43f5474..c3214afb8 100644
--- a/gracedb/ligoauth/middleware.py
+++ b/gracedb/ligoauth/middleware.py
@@ -126,8 +126,11 @@ class ControlRoomMiddleware(object):
         # Add user to control room group(s)
         for ifo, ip in settings.CONTROL_ROOM_IPS.iteritems():
             if (ip == user_ip):
-                request.user.groups.add(Group.objects.get(name=
-                    ifo.lower() + self.control_room_group_suffix))
+                control_room_group = Group.objects.get(name=
+                    (ifo.lower() + self.control_room_group_suffix))
+                request.user.groups.through.objects.get_or_create(
+                    user=request.user, group=control_room_group)
+                break
 
         return request
 
-- 
GitLab