diff --git a/program/management/commands/addpermissions.py b/program/management/commands/addpermissions.py index f4cb3a0ed0625b88b95202b384c1c1ec728877f5..db933a0a7f67aa828bdce618c756f7616632c0be 100644 --- a/program/management/commands/addpermissions.py +++ b/program/management/commands/addpermissions.py @@ -8,35 +8,37 @@ class Command(BaseCommand): def handle(self, *args, **options): program_group = Group.objects.get(name=settings.PRIVILEGED_GROUP) - program_permissions = Permission.objects.filter(content_type__app_label="program") + app_permissions = Permission.objects.filter(content_type__app_label="program").exclude( + codename__startswith="edit" + ) self.stdout.write( - " Adding program permissions to the privileged group... ", + " Adding app permissions to the privileged group... ", ending="", ) self.stdout.flush() - program_group.permissions.add(*program_permissions) - self.stdout.write(self.style.SUCCESS(len(program_permissions))) + program_group.permissions.add(*app_permissions) + self.stdout.write(self.style.SUCCESS(len(app_permissions))) broadcast_group = Group.objects.get(name=settings.ENTITLED_GROUPS[0]) - note_notelink_permissions = Permission.objects.filter( + model_permissions = Permission.objects.filter( content_type__model__in=["note", "notelink"] - ) + ).exclude(codename__startswith="edit") self.stdout.write( - " Adding note & notelink permissions to the first entitled group... ", + " Adding model permissions on note & notelink to the first entitled group... ", ending="", ) self.stdout.flush() - broadcast_group.permissions.add(*note_notelink_permissions) - self.stdout.write(self.style.SUCCESS(len(note_notelink_permissions))) + broadcast_group.permissions.add(*model_permissions) + self.stdout.write(self.style.SUCCESS(len(model_permissions))) broadcast_plus_group = Group.objects.get(name=settings.ENTITLED_GROUPS[1]) - change_host_show_permissions = Permission.objects.filter( - codename__startswith="change", content_type__model__in=["host", "show"] + edit_permissions = Permission.objects.filter( + codename__startswith="edit", content_type__model__in=["host", "note", "show"] ) self.stdout.write( - " Adding change host & show permissions to second the entitled group... ", + " Adding edit permissions on host, note & show to the second entitled group... ", ending="", ) self.stdout.flush() - broadcast_plus_group.permissions.add(*change_host_show_permissions) - self.stdout.write(self.style.SUCCESS(len(change_host_show_permissions))) + broadcast_plus_group.permissions.add(*edit_permissions) + self.stdout.write(self.style.SUCCESS(len(edit_permissions))) diff --git a/program/migrations/0077_alter_host_options_alter_note_options_and_more.py b/program/migrations/0077_alter_host_options_alter_note_options_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..26cfa948f31e24a95d777426c4d9f5476d763f9a --- /dev/null +++ b/program/migrations/0077_alter_host_options_alter_note_options_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.2.6 on 2023-12-13 21:47 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("program", "0076_add_permissions_and_groups"), + ] + + operations = [ + migrations.AlterModelOptions( + name="host", + options={ + "ordering": ("name",), + "permissions": [ + ("edit__host__biography", "Can edit Host biography field"), + ("edit__host__name", "Can edit Host name field"), + ], + }, + ), + migrations.AlterModelOptions( + name="note", + options={ + "ordering": ("timeslot",), + "permissions": [ + ("edit__note__language", "Can edit Note language field"), + ("edit__note__topic", "Can edit Note topic field"), + ], + }, + ), + migrations.AlterModelOptions( + name="show", + options={ + "ordering": ("slug",), + "permissions": [ + ("edit__show__description", "Can edit Show description field"), + ("edit__show__name", "Can edit Show name field"), + ("edit__show__short_description", "Can edit Show short_description field"), + ], + }, + ), + ] diff --git a/program/models.py b/program/models.py index aaf8e4d020834a57e6df5419bc3a6fbee209fbdb..eedc69feafd4fa2eae02fefeaf21e45ae0700201 100644 --- a/program/models.py +++ b/program/models.py @@ -174,10 +174,8 @@ class Host(models.Model): class Meta: ordering = ("name",) permissions = [ - ("change_biography", "Can change biography"), - ("change_email", "Can change email"), - ("change_image", "Can change image"), - ("change_name", "Can change name"), + ("edit__host__biography", "Can edit Host biography field"), + ("edit__host__name", "Can edit Host name field"), ] def __str__(self): @@ -258,12 +256,9 @@ class Show(models.Model): class Meta: ordering = ("slug",) permissions = [ - ("change_description", "Can change description"), - ("change_email", "Can change email"), - ("change_image", "Can change image"), - ("change_logo", "Can change logo"), - ("change_name", "Can change name"), - ("change_short_description", "Can change short_description"), + ("edit__show__description", "Can edit Show description field"), + ("edit__show__name", "Can edit Show name field"), + ("edit__show__short_description", "Can edit Show short_description field"), ] def __str__(self): @@ -456,6 +451,10 @@ class Note(models.Model): class Meta: ordering = ("timeslot",) + permissions = [ + ("edit__note__language", "Can edit Note language field"), + ("edit__note__topic", "Can edit Note topic field"), + ] def __str__(self): return self.title