diff options
Diffstat (limited to 'ishtar_common/migrations/0256_clean_add_own_permissions.py')
-rw-r--r-- | ishtar_common/migrations/0256_clean_add_own_permissions.py | 31 |
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) + ] |