From 2a41e7ba17ec7aa560e8688e4465db2b4b8ad338 Mon Sep 17 00:00:00 2001
From: Maxi Schulz <maximilian.schulz@hs-hannover.de>
Date: Mon, 26 Feb 2018 15:14:39 +0100
Subject: [PATCH] Custom group permission creation now safer

---
 .../management/commands/create_custom_groups.py  | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/ssoauth/management/commands/create_custom_groups.py b/ssoauth/management/commands/create_custom_groups.py
index 75708d8..8c63f5c 100644
--- a/ssoauth/management/commands/create_custom_groups.py
+++ b/ssoauth/management/commands/create_custom_groups.py
@@ -21,11 +21,17 @@ def setup_groups():
         if created:
             logger.info("Created group \"{}\"".format(group_name))
         for perm_name in permission_names:
-            perm, created = Permission.objects.get_or_create(
-                codename=perm_name,
-                name=perm_name,
-                content_type_id=ContentType.objects.get_for_model(User).id
-            )
+            try:
+                perm = Permission.objects.get(
+                    codename=perm_name,
+                    content_type_id=ContentType.objects.get_for_model(User).id
+                )
+            except Permission.DoesNotExist:
+                perm = Permission.objects.create(
+                    codename=perm_name,
+                    name=perm_name,
+                    content_type_id=ContentType.objects.get_for_model(User).id
+                )
             if created:
                 logger.info("Created permission \"{}\"".format(perm_name))
             if perm not in group.permissions.all():
-- 
GitLab