summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0256_clean_add_own_permissions.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-12 17:27:25 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:43:49 +0100
commited6d2a764fcc76a0feba1c586acb9afddbecd16b (patch)
treea81b0bbfc3a45e6f895fc7e70652b94a97abd116 /ishtar_common/migrations/0256_clean_add_own_permissions.py
parentce7d642318f4e4c57dd552915b12eef360d33d70 (diff)
downloadIshtar-ed6d2a764fcc76a0feba1c586acb9afddbecd16b.tar.bz2
Ishtar-ed6d2a764fcc76a0feba1c586acb9afddbecd16b.zip
♻️ clean all "add_own"
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)
+ ]