import os import json import sys from django_rbac.utils import get_role_model, get_ou_model Ou = get_ou_model() Role = get_role_model() mapping = {} name_src = sys.argv[1] name_dst = sys.argv[2] ou_src = Ou.objects.get(name=name_src) ou = Ou.objects.get(name=name_dst) agent_role = None for role in Role.objects.filter(ou=ou_src): #if not (role.name.startswith('Gestionnaire') or role.name.startswith('Administrateur')): # continue if role.slug.startswith('_'): continue new_name = role.name.replace(name_src, name_dst).replace(name_src.lower(), name_dst.lower()) new_role, created = Role.objects.get_or_create(ou=ou, name=new_name) mapping[role.uuid] = {name_dst: new_role.uuid} if new_name == 'Agent': agent_role = new_role if agent_role: for role in Role.objects.filter(ou=ou): if ou.uuid == agent_role.uuid: continue role.add_parent(agent_role) json.dump(mapping, open('/tmp/roles.mapping.json', 'w'), indent=2)