From 198e456c226cd2d6290db917613cf720b357d359 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Fri, 28 Aug 2020 17:43:06 +0200 Subject: [PATCH] Fix BDS group perms --- bds/__init__.py | 1 + bds/apps.py | 26 ++++++++++++++++++++++++++ bds/migrations/0002_bds_group.py | 15 +-------------- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/bds/__init__.py b/bds/__init__.py index e69de29b..5c287005 100644 --- a/bds/__init__.py +++ b/bds/__init__.py @@ -0,0 +1 @@ +default_app_config = "bds.apps.BdsConfig" diff --git a/bds/apps.py b/bds/apps.py index db0cafcb..31863bf0 100644 --- a/bds/apps.py +++ b/bds/apps.py @@ -1,5 +1,31 @@ +from django import apps as global_apps from django.apps import AppConfig +from django.db.models import Q +from django.db.models.signals import post_migrate + + +def bds_group_perms(app_config, apps=global_apps, **kwargs): + try: + Permission = apps.get_model("auth", "Permission") + Group = apps.get_model("auth", "Group") + + group = Group.objects.get(name="Burô du BDS") + perms = Permission.objects.filter( + Q(content_type__app_label="bds") + | Q(content_type__app_label="auth") & Q(content_type__model="user") + ) + group.permissions.set(perms) + group.save() + + except (LookupError, Group.DoesNotExist): + return class BdsConfig(AppConfig): name = "bds" + verbose_name = "Gestion des adhérent·e·s du BDS" + + def ready(self): + from . import signals # noqa + + post_migrate.connect(bds_group_perms, sender=self) diff --git a/bds/migrations/0002_bds_group.py b/bds/migrations/0002_bds_group.py index 9b54d35c..a55e76eb 100644 --- a/bds/migrations/0002_bds_group.py +++ b/bds/migrations/0002_bds_group.py @@ -1,24 +1,11 @@ # Generated by Django 2.2 on 2019-07-17 14:56 -from django.contrib.auth.management import create_permissions from django.db import migrations -from django.db.models import Q def create_bds_buro_group(apps, schema_editor): - for app_config in apps.get_app_configs(): - create_permissions(app_config, apps=apps, verbosity=0) - Group = apps.get_model("auth", "Group") - Permission = apps.get_model("auth", "Permission") - group, created = Group.objects.get_or_create(name="Burô du BDS") - if created: - perms = Permission.objects.filter( - Q(content_type__app_label="bds") - | Q(content_type__app_label="auth") & Q(content_type__model="user") - ) - group.permissions.set(perms) - group.save() + Group.objects.get_or_create(name="Burô du BDS") class Migration(migrations.Migration):