summaryrefslogtreecommitdiff
path: root/postgresqleu/util/apps.py
diff options
context:
space:
mode:
Diffstat (limited to 'postgresqleu/util/apps.py')
-rw-r--r--postgresqleu/util/apps.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/postgresqleu/util/apps.py b/postgresqleu/util/apps.py
new file mode 100644
index 00000000..69d00264
--- /dev/null
+++ b/postgresqleu/util/apps.py
@@ -0,0 +1,23 @@
+from django.apps import AppConfig, apps
+from django.db.models.signals import post_migrate
+from django.db import transaction
+
+from .auth import PERMISSION_GROUPS
+
+
+def handle_post_migrate(sender, **kwargs):
+ # Ensure all permissions groups exist
+ # (yes, we have a hardcoded list..)
+ with transaction.atomic():
+ Group = apps.get_model('auth', 'Group')
+ for g in PERMISSION_GROUPS:
+ g, created = Group.objects.get_or_create(name=g)
+ if created:
+ print("Created access group {0}".format(g))
+
+
+class UtilAppConfig(AppConfig):
+ name = 'postgresqleu.util'
+
+ def ready(self):
+ post_migrate.connect(handle_post_migrate, sender=self)