# -*- coding: utf-8 -*- # Generated by Django 1.10.7 on 2017-12-31 19:53 from __future__ import unicode_literals from django.db import migrations class Migration(migrations.Migration): dependencies = [ ("users", "0065_auto_20171231_2053"), ("cotisations", "0028_auto_20171231_0007"), ("machines", "0071_auto_20171231_2100"), ("preferences", "0025_auto_20171231_2142"), ("topologie", "0033_auto_20171231_1743"), ] def transfer_permissions(apps, schema_editor): permission_groups = { "bofh": [ "add_ban", "change_ban", "delete_ban", "view_ban", "add_club", "change_club", "delete_club", "add_user", "change_user", "change_user_force", "change_user_password", "change_user_shell", "view_user", "add_whitelist", "change_whitelist", "delete_whitelist", "view_whitelist", ], "bureau": [ "add_logentry", "change_logentry", "delete_logentry", "add_group", "change_group", "delete_group", "add_permission", "change_permission", "delete_permission", "add_adherent", "change_adherent", "delete_adherent", "add_ban", "change_ban", "delete_ban", "view_ban", "add_club", "change_club", "delete_club", "add_listright", "change_listright", "delete_listright", "view_listright", "add_school", "change_school", "delete_school", "view_school", "add_user", "change_user", "change_user_force", "change_user_groups", "change_user_password", "change_user_shell", "change_user_state", "delete_user", "view_user", "add_whitelist", "change_whitelist", "delete_whitelist", "view_whitelist", ], "cableur": [ "add_logentry", "view_article", "add_banque", "change_banque", "delete_banque", "view_banque", "add_cotisation", "change_cotisation", "delete_cotisation", "view_cotisation", "add_facture", "can_create", "can_delete", "can_edit", "can_view", "can_view_all", "change_facture", "delete_facture", "view_facture", "view_paiement", "add_vente", "change_vente", "delete_vente", "view_vente", "add_domain", "change_domain", "delete_domain", "view_domain", "use_all_extension", "view_extension", "add_interface", "change_interface", "delete_interface", "view_interface", "view_iplist", "view_iptype", "add_machine", "change_machine", "view_machine", "view_machinetype", "view_mx", "view_nas", "view_ns", "view_ouvertureportlist", "view_service", "view_soa", "view_soa", "view_txt", "view_vlan", "view_assooption", "view_generaloption", "view_mailmessageoption", "view_optionalmachine", "view_optionaltopologie", "view_optionaluser", "view_service", "view_constructorswitch", "view_modelswitch", "view_port", "view_room", "view_stack", "view_switch", "add_adherent", "change_adherent", "view_ban", "add_club", "change_club", "view_listright", "add_school", "change_school", "delete_school", "view_school", "view_serviceuser", "add_user", "change_user", "change_user_force", "change_user_password", "view_user", "add_whitelist", "change_whitelist", "delete_whitelist", "view_whitelist", ], "tresorier": [ "add_article", "change_article", "delete_article", "view_article", "add_banque", "change_banque", "delete_banque", "view_banque", "add_cotisation", "change_all_cotisation", "change_cotisation", "delete_cotisation", "view_cotisation", "add_facture", "can_change_control", "can_change_pdf", "can_create", "can_delete", "can_edit", "can_view", "can_view_all", "change_all_facture", "change_facture", "change_facture_control", "change_facture_pdf", "delete_facture", "view_facture", "add_paiement", "change_paiement", "delete_paiement", "view_paiement", "add_vente", "change_all_vente", "change_vente", "delete_vente", "view_vente", ], "admin": [ "add_logentry", "change_logentry", "delete_logentry", "add_assooption", "change_assooption", "delete_assooption", "view_assooption", "add_generaloption", "change_generaloption", "delete_generaloption", "view_generaloption", "add_mailmessageoption", "change_mailmessageoption", "delete_mailmessageoption", "view_mailmessageoption", "add_optionalmachine", "change_optionalmachine", "delete_optionalmachine", "view_optionalmachine", "add_optionaltopologie", "change_optionaltopologie", "delete_optionaltopologie", "view_optionaltopologie", "add_optionaluser", "change_optionaluser", "delete_optionaluser", "view_optionaluser", "add_service", "add_services", "change_service", "change_services", "delete_service", "delete_services", "view_service", ], "infra": [ "add_domain", "change_domain", "delete_domain", "view_domain", "add_extension", "change_extension", "delete_extension", "use_all_extension", "view_extension", "add_interface", "change_interface", "delete_interface", "view_interface", "add_iplist", "change_iplist", "delete_iplist", "view_iplist", "add_iptype", "change_iptype", "delete_iptype", "use_all_iptype", "view_iptype", "add_machine", "change_machine", "change_machine_user", "delete_machine", "view_machine", "add_machinetype", "change_machinetype", "delete_machinetype", "use_all_machinetype", "view_machinetype", "add_mx", "change_mx", "delete_mx", "view_mx", "add_nas", "change_nas", "delete_nas", "view_nas", "add_ns", "change_ns", "delete_ns", "view_ns", "add_ouvertureport", "change_ouvertureport", "delete_ouvertureport", "add_ouvertureportlist", "change_ouvertureportlist", "delete_ouvertureportlist", "view_ouvertureportlist", "add_service", "change_service", "delete_service", "view_service", "add_service_link", "change_service_link", "delete_service_link", "add_soa", "change_soa", "delete_soa", "view_soa", "add_srv", "change_srv", "delete_srv", "view_soa", "add_text", "add_txt", "change_text", "change_txt", "delete_text", "delete_txt", "view_txt", "add_vlan", "change_vlan", "delete_vlan", "view_vlan", "add_constructorswitch", "change_constructorswitch", "delete_constructorswitch", "view_constructorswitch", "add_modelswitch", "change_modelswitch", "delete_modelswitch", "view_modelswitch", "add_port", "change_port", "delete_port", "view_port", "add_room", "change_room", "delete_room", "view_room", "add_stack", "change_stack", "delete_stack", "view_stack", "add_switch", "change_switch", "delete_switch", "view_switch", "add_listshell", "change_listshell", "delete_listshell", "add_serviceuser", "change_serviceuser", "delete_serviceuser", "view_serviceuser", "change_user", "view_user", ], } rights = apps.get_model("users", "ListRight") permissions = apps.get_model("auth", "Permission") groups = apps.get_model("auth", "Group") db_alias = schema_editor.connection.alias for group in permission_groups: lr_object = rights.objects.using(db_alias).filter(unix_name=group).first() if not lr_object: last = rights.objects.using(db_alias).all().order_by("gid").last() if last: gid = last.gid + 1 else: gid = 501 group_object = groups.objects.using(db_alias).create(name=group) lr_object = rights.objects.using(db_alias).create( unix_name=group, gid=gid, group_ptr=group_object ) lr_object = lr_object.group_ptr for permission in permission_groups[group]: perm = ( permissions.objects.using(db_alias) .filter(codename=permission) .first() ) if perm: lr_object.permissions.add(perm) lr_object.save() def untransfer_permissions(apps, schema_editor): return operations = [migrations.RunPython(transfer_permissions, untransfer_permissions)]