summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0058_migrate_groups_document.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 19:57:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 19:57:11 +0200
commitf36d04429179b7514c25d0440673c7af08c89893 (patch)
tree6143f2bd670816554a62cc291a19052197c8c091 /ishtar_common/migrations/0058_migrate_groups_document.py
parent56ddd006e790a7ce9494cbcf67ed1ed6e430afd9 (diff)
downloadIshtar-f36d04429179b7514c25d0440673c7af08c89893.tar.bz2
Ishtar-f36d04429179b7514c25d0440673c7af08c89893.zip
Migrate appropriate permissions for documents (refs #4107)
Diffstat (limited to 'ishtar_common/migrations/0058_migrate_groups_document.py')
-rw-r--r--ishtar_common/migrations/0058_migrate_groups_document.py44
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)
+ ]