From 78616770b46846509a89f5065b15969e4a70e70c Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Mon, 11 Dec 2023 17:34:49 -0400
Subject: [PATCH] feat: add permissions and groups

---
 .../0076_add_permissions_and_groups.py        | 47 +++++++++++++++++++
 program/models.py                             | 14 ++++++
 2 files changed, 61 insertions(+)
 create mode 100644 program/migrations/0076_add_permissions_and_groups.py

diff --git a/program/migrations/0076_add_permissions_and_groups.py b/program/migrations/0076_add_permissions_and_groups.py
new file mode 100644
index 00000000..c8b12a6f
--- /dev/null
+++ b/program/migrations/0076_add_permissions_and_groups.py
@@ -0,0 +1,47 @@
+# Generated by Django 4.2.6 on 2023-12-07 20:29
+
+from django.db import migrations
+
+
+def add_groups(apps, _):
+    Group = apps.get_model("auth", "Group")
+
+    Group.objects.get_or_create(name="Program")
+    Group.objects.get_or_create(name="Broadcast")
+    Group.objects.get_or_create(name="BroadcastPlus")
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("program", "0075_remove_timeslot_language_remove_timeslot_topic_and_more"),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name="host",
+            options={
+                "ordering": ("name",),
+                "permissions": [
+                    ("change_biography", "Can change biography"),
+                    ("change_email", "Can change email"),
+                    ("change_image", "Can change image"),
+                    ("change_name", "Can change name"),
+                ],
+            },
+        ),
+        migrations.AlterModelOptions(
+            name="show",
+            options={
+                "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"),
+                ],
+            },
+        ),
+        migrations.RunPython(code=add_groups),
+    ]
diff --git a/program/models.py b/program/models.py
index 3877bb07..aaf8e4d0 100644
--- a/program/models.py
+++ b/program/models.py
@@ -173,6 +173,12 @@ 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"),
+        ]
 
     def __str__(self):
         return self.name
@@ -251,6 +257,14 @@ 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"),
+        ]
 
     def __str__(self):
         return self.name
-- 
GitLab