From e85cc58a7a2d634a6fe7a0aea2db3da0a4c023d0 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Fri, 24 May 2019 15:40:17 +0100
Subject: [PATCH] GH-985: Make sure superusers dont fall through the cracks

---
 .../0062_data_migrate_type_for_assigned_reviewers.py       | 7 +++++--
 opentech/apply/funds/models/submissions.py                 | 5 ++++-
 .../apply/review/migrations/0018_migrate_author_data.py    | 5 ++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/opentech/apply/funds/migrations/0062_data_migrate_type_for_assigned_reviewers.py b/opentech/apply/funds/migrations/0062_data_migrate_type_for_assigned_reviewers.py
index f2c8b2f4a..ed7f3003a 100644
--- a/opentech/apply/funds/migrations/0062_data_migrate_type_for_assigned_reviewers.py
+++ b/opentech/apply/funds/migrations/0062_data_migrate_type_for_assigned_reviewers.py
@@ -29,12 +29,15 @@ def add_reviewer_type(apps, schema_editor):
                 groups = {PARTNER_GROUP_NAME}
             elif COMMUNITY_REVIEWER_GROUP_NAME in groups:
                 groups = {COMMUNITY_REVIEWER_GROUP_NAME}
-            elif review.author.is_staff or review.author.is_superuser:
+            elif assigned.reviewer.is_staff or assigned.reviewer.is_superuser:
                 groups = {STAFF_GROUP_NAME}
             else:
                 groups = {REVIEWER_GROUP_NAME}
         elif not groups:
-            groups = {REVIEWER_GROUP_NAME}
+            if assigned.reviewer.is_staff or assigned.reviewer.is_superuser:
+                groups = {STAFF_GROUP_NAME}
+            else:
+                groups = {REVIEWER_GROUP_NAME}
 
         group = Group.objects.get(name=groups.pop())
         assigned.type = group
diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py
index 3d7da4704..2906ce528 100644
--- a/opentech/apply/funds/models/submissions.py
+++ b/opentech/apply/funds/models/submissions.py
@@ -792,7 +792,10 @@ class AssignedReviewersQuerySet(models.QuerySet):
             else:
                 groups = {REVIEWER_GROUP_NAME}
         elif not groups:
-            groups = {REVIEWER_GROUP_NAME}
+            if assigned.reviewer.is_staff or assigned.reviewer.is_superuser:
+                groups = {STAFF_GROUP_NAME}
+            else:
+                groups = {REVIEWER_GROUP_NAME}
 
         group = Group.objects.get(name=groups.pop())
 
diff --git a/opentech/apply/review/migrations/0018_migrate_author_data.py b/opentech/apply/review/migrations/0018_migrate_author_data.py
index 0b8704d29..fecd058fd 100644
--- a/opentech/apply/review/migrations/0018_migrate_author_data.py
+++ b/opentech/apply/review/migrations/0018_migrate_author_data.py
@@ -36,7 +36,10 @@ def add_to_assigned_reviewers(apps, schema_editor):
             else:
                 groups = {REVIEWER_GROUP_NAME}
         elif not groups:
-            groups = {REVIEWER_GROUP_NAME}
+            if assigned.reviewer.is_staff or assigned.reviewer.is_superuser:
+                groups = {STAFF_GROUP_NAME}
+            else:
+                groups = {REVIEWER_GROUP_NAME}
 
         group = Group.objects.get(name=groups.pop())
 
-- 
GitLab