agenda_culturel/src/agenda_culturel/migrations/0038_auto_20240331_1815.py
2024-10-19 23:42:29 +02:00

51 lines
1.8 KiB
Python

# Generated by Django 4.2.7 on 2024-03-31 16:15
from django.db import migrations
from django.contrib.auth.models import Group, Permission
def update_groups_permissions(apps, schema_editor):
# first add a missing role
user_roles = ["Moderator"]
for name in user_roles:
Group.objects.create(name=name)
all_perms = Permission.objects.all()
# set permissions for moderators
moderator_perms = [i for i in all_perms if i.content_type.app_label == 'agenda_culturel' and i.content_type.model in ['event', 'duplicatedevents']]
Group.objects.get(name="Moderator").permissions.add(*moderator_perms)
read_mod_perms = [i for i in moderator_perms if i.codename.startswith('view_')]
# set permissions for automation managers
automanager_perms = [i for i in all_perms if i.content_type.app_label == 'agenda_culturel' and i.content_type.model in ['batchimportation', 'recurrentimport', 'categorisationrule']]
Group.objects.get(name="Automation Manager").permissions.add(*automanager_perms)
Group.objects.get(name="Automation Manager").permissions.add(*read_mod_perms)
# set permissions for receptionists
receptionist_perms = [i for i in all_perms if i.content_type.app_label == 'agenda_culturel' and i.content_type.model in ['contactmessage']]
Group.objects.get(name="Receptionist").permissions.add(*receptionist_perms)
Group.objects.get(name="Receptionist").permissions.add(*read_mod_perms)
def update_groups_delete(apps, schema_editor):
user_roles = ["Moderator"]
for name in user_roles:
Group.objects.filter(name=name).delete()
class Migration(migrations.Migration):
dependencies = [
('agenda_culturel', '0037_alter_batchimportation_options_and_more'),
]
operations = [
migrations.RunPython(update_groups_permissions, reverse_code=update_groups_delete),
]