From 7923dc726d7290ecc10b71af2766130c9087098d Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Wed, 22 Aug 2018 13:34:37 -0500 Subject: [PATCH] Adding new groups for managing permissions Created the 'access_managers' and 'superevent_managers' groups. These groups will be given appropriate permissions for managing external access to gracedb and creating/updating superevents, respectively. --- ...016_create_access_and_superevent_groups.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 gracedb/migrations/auth/0016_create_access_and_superevent_groups.py diff --git a/gracedb/migrations/auth/0016_create_access_and_superevent_groups.py b/gracedb/migrations/auth/0016_create_access_and_superevent_groups.py new file mode 100644 index 000000000..461952d76 --- /dev/null +++ b/gracedb/migrations/auth/0016_create_access_and_superevent_groups.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-08-02 18:33 +# Create new groups for managing external access to superevents +# and for allowing non-Test superevent creation and update. We +# also add users to those groups + +from __future__ import unicode_literals + +from django.db import migrations + +GROUPS = { + 'access_managers': [], + 'superevent_managers': ['emfollow'], +} + +def add_groups(apps, schema_editor): + Group = apps.get_model('auth', 'Group') + User = apps.get_model('auth', 'User') + + for group_name, usernames in GROUPS.iteritems(): + g, _ = Group.objects.get_or_create(name=group_name) + users = User.objects.filter(username__in=usernames) + g.user_set.add(*users) + + +def remove_groups(apps, schema_editor): + Group = apps.get_model('auth', 'Group') + User = apps.get_model('auth', 'User') + + for group_name in GROUPS: + g = Group.objects.get(name=group_name) + g.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('auth', '0015_update_emfollow_accounts'), + ] + + operations = [ + migrations.RunPython(add_groups, remove_groups), + ] -- GitLab