From 77bfa13bb71c246f3ebda4618a1e5a125e1670c2 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 11 Dec 2023 17:36:34 -0400 Subject: [PATCH] feat: add permissions to the new groups This apparently needs to done in a separate migration step --- .../0077_add_permissions_to_groups.py | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 program/migrations/0077_add_permissions_to_groups.py diff --git a/program/migrations/0077_add_permissions_to_groups.py b/program/migrations/0077_add_permissions_to_groups.py new file mode 100644 index 00000000..4089916f --- /dev/null +++ b/program/migrations/0077_add_permissions_to_groups.py @@ -0,0 +1,52 @@ +# Generated by Django 4.2.6 on 2023-12-11 20:28 + +from django.db import migrations + + +def add_permissions_to_groups(apps, _): + ContentType = apps.get_model("contenttypes", "ContentType") + Group = apps.get_model("auth", "Group") + Permission = apps.get_model("auth", "Permission") + + Note = apps.get_model("program", "Note") + NoteLink = apps.get_model("program", "NoteLink") + + program = Group.objects.get(name="Program") + for permission in Permission.objects.filter(content_type__app_label="program"): + program.permissions.add(permission) + + broadcast = Group.objects.get(name="Broadcast") + for permission in Permission.objects.filter( + content_type__in=[ + ContentType.objects.get_for_model(Note), + ContentType.objects.get_for_model(NoteLink), + ] + ): + broadcast.permissions.add(permission) + + broadcast_plus = Group.objects.get(name="BroadcastPlus") + for permission in Permission.objects.filter( + codename__in=[ + # for `Host` + "change_biography", + "change_email", + "change_image", + "change_name", + # for `Show` + "change_description", + "change_email", + "change_image", + "change_logo", + "change_name", + "change_short_description", + ] + ): + broadcast_plus.permissions.add(permission) + + +class Migration(migrations.Migration): + dependencies = [ + ("program", "0076_add_permissions_and_groups"), + ] + + operations = [migrations.RunPython(code=add_permissions_to_groups)] -- GitLab