diff options
Diffstat (limited to 'ishtar_common/migrations/0058_migrate_groups_document.py')
-rw-r--r-- | ishtar_common/migrations/0058_migrate_groups_document.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/ishtar_common/migrations/0058_migrate_groups_document.py b/ishtar_common/migrations/0058_migrate_groups_document.py new file mode 100644 index 000000000..ae3732b4f --- /dev/null +++ b/ishtar_common/migrations/0058_migrate_groups_document.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-06-12 19:03 +from __future__ import unicode_literals + +from django.contrib.auth.management import create_permissions +from django.db import migrations +from django.apps import apps as django_apps + + +def migrate_groups(apps, schema_editor): + create_permissions(django_apps.get_app_config('ishtar_common'), verbosity=0) + Group = apps.get_model('auth', 'Group') + Permission = apps.get_model('auth', 'Permission') + ProfileType = apps.get_model('ishtar_common', 'ProfileType') + for gp in Group.objects.filter(name__startswith='Document').all(): + gp.delete() + groups = [ + (u"Documents : lecture", ['view_document']), + (u"Documents : ajout", ['add_document']), + (u"Documents : modification/suppression", + ['change_document', 'delete_document']), + (u"Documents rattachés : lecture", ['view_own_document']), + (u"Documents rattachés : ajout", ['add_own_document']), + (u"Documents rattachés : modification/suppression", + ['change_own_document', 'delete_own_document']), + ] + admin = ProfileType.objects.get(txt_idx='administrator') + for name, codenames in groups: + gp = Group.objects.create(name=name) + for codename in codenames: + p = Permission.objects.get(codename=codename) + gp.permissions.add(p) + admin.groups.add(gp) + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0057_document_cache_related_label'), + ] + + operations = [ + migrations.RunPython(migrate_groups) + ] |