summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0256_clean_add_own_permissions.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/migrations/0256_clean_add_own_permissions.py')
-rw-r--r--ishtar_common/migrations/0256_clean_add_own_permissions.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/ishtar_common/migrations/0256_clean_add_own_permissions.py b/ishtar_common/migrations/0256_clean_add_own_permissions.py
new file mode 100644
index 000000000..6ad695dca
--- /dev/null
+++ b/ishtar_common/migrations/0256_clean_add_own_permissions.py
@@ -0,0 +1,31 @@
+# Generated by Django 2.2.28 on 2024-11-12 17:12
+
+from django.db import migrations
+
+
+def clean_permissions(app, __):
+ Group = app.get_model("auth", "group")
+ for group in Group.objects.filter(permissions__codename__startswith="add_own_").all():
+ if group.permissions.exclude(
+ codename__startswith="add_own_").count():
+ # other groups, only remove "own"
+ for own_grp in group.permissions.filter(
+ codename__startswith="add_own_").all():
+ group.permissions.remove(own_grp)
+ continue
+ for user in group.user_set.all():
+ user.groups.remove(group)
+ for pt in group.profile_types.all():
+ pt.groups.remove(group)
+ group.delete()
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0255_migrate_delete_perm_clean_groups'),
+ ]
+
+ operations = [
+ migrations.RunPython(clean_permissions)
+ ]