From dcc3ccbce05f53e41270d5e1bdfd03e1286eeb65 Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Thu, 7 Feb 2019 14:07:17 -0600
Subject: [PATCH] Add and populate group for priority users

---
 config/settings/base.py                       |  1 +
 .../auth/0019_create_priority_users_group.py  | 28 +++++++++
 .../0020_populate_priority_users_group.py     | 57 +++++++++++++++++++
 3 files changed, 86 insertions(+)
 create mode 100644 gracedb/migrations/auth/0019_create_priority_users_group.py
 create mode 100644 gracedb/migrations/auth/0020_populate_priority_users_group.py

diff --git a/config/settings/base.py b/config/settings/base.py
index 93d80696f..ed24bd04e 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -104,6 +104,7 @@ LVC_GROUP = 'Communities:LSCVirgoLIGOGroupMembers'
 LVEM_GROUP = 'gw-astronomy:LV-EM'
 LVEM_OBSERVERS_GROUP = 'gw-astronomy:LV-EM:Observers'
 PUBLIC_GROUP = 'public_users'
+PRIORITY_USERS_GROUP = 'priority_users'
 
 # Group names
 # Executives group name
diff --git a/gracedb/migrations/auth/0019_create_priority_users_group.py b/gracedb/migrations/auth/0019_create_priority_users_group.py
new file mode 100644
index 000000000..dec439239
--- /dev/null
+++ b/gracedb/migrations/auth/0019_create_priority_users_group.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.18 on 2018-12-05 02:41
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+GROUP_NAME = 'priority_users'
+
+def create_group(apps, schema_editor):
+    Group = apps.get_model('auth', 'Group')
+    Group.objects.create(name=GROUP_NAME)
+
+
+def delete_group(apps, schema_editor):
+    Group = apps.get_model('auth', 'Group')
+    g = Group.objects.get(name=GROUP_NAME)
+    g.delete()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('auth', '0018_update_emfollow_groups'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_group, delete_group),
+    ]
diff --git a/gracedb/migrations/auth/0020_populate_priority_users_group.py b/gracedb/migrations/auth/0020_populate_priority_users_group.py
new file mode 100644
index 000000000..490c9a162
--- /dev/null
+++ b/gracedb/migrations/auth/0020_populate_priority_users_group.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.18 on 2018-12-05 02:47
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+GROUP_NAME = 'priority_users'
+PRIORITY_USERS = [
+    'detchar',
+    'emfollow',
+    'gstlal-spiir',
+    'gstlalcbc',
+    'MbtaAlert',
+    'oLIB',
+    'pycbclive',
+    'virgo_detchar',
+    'waveburst', # cWB
+]
+
+
+def add_users(apps, schema_editor):
+    Group = apps.get_model('auth', 'Group')
+    User = apps.get_model('auth', 'User')
+
+    # Get group
+    pg = Group.objects.get(name=GROUP_NAME)
+
+    # Get users
+    users = User.objects.filter(username__in=PRIORITY_USERS)
+
+    # Add users
+    pg.user_set.add(*users)
+
+
+def remove_users(apps, schema_editor):
+    Group = apps.get_model('auth', 'Group')
+    User = apps.get_model('auth', 'User')
+
+    # Get group
+    pg = Group.objects.get(name=GROUP_NAME)
+
+    # Get users
+    users = User.objects.filter(username__in=PRIORITY_USERS)
+
+    # Remove users
+    pg.user_set.remove(*users)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('auth', '0019_create_priority_users_group'),
+    ]
+
+    operations = [
+        migrations.RunPython(add_users, remove_users),
+    ]
-- 
GitLab