43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# Commune de Démonstration
|
|
# Commune de Démonstration - AEC
|
|
# Commune de Démonstration - DPO
|
|
# Commune de Démonstration - SVE
|
|
# Commune de Démonstration - Urbanisme
|
|
from authentic2.a2_rbac.models import OrganizationalUnit as OU, Role
|
|
|
|
print('start')
|
|
new_ou = OU.objects.get(slug='hobo-collectivites')
|
|
old_agent = Role.objects.get(ou__slug='default', name='Agent')
|
|
new_agent = Role.objects.get(ou__slug='hobo-collectivites', name='Agent')
|
|
base_roles = (
|
|
Role.objects.filter(ou__slug='default', name__startswith='Com')
|
|
.exclude(name__contains=' - ')
|
|
.order_by('name')
|
|
)
|
|
|
|
extensions = [' - SVE', ' - AEC', ' - DPO', ' - Urbanisme']
|
|
for role in base_roles:
|
|
new_role, created = Role.objects.update_or_create(name=role.name, ou=new_ou, defaults={'slug': role.slug})
|
|
print(new_role, created)
|
|
for ext in extensions:
|
|
new_subrole, created = Role.objects.update_or_create(name=role.name + ext, ou=new_ou)
|
|
new_role.add_parent(new_subrole)
|
|
|
|
|
|
print('adding agent to old roles')
|
|
all_old_roles = Role.objects.filter(ou__slug='default', name__startswith='Com').order_by('name')
|
|
for role in all_old_roles:
|
|
role.add_parent(old_agent)
|
|
print(role)
|
|
|
|
all_new_roles = Role.objects.filter(ou__slug='hobo-collectivites', name__startswith='Com').order_by('name')
|
|
for role in all_new_roles:
|
|
role.add_parent(new_agent)
|
|
try:
|
|
old_role = Role.objects.get(ou__slug='default', name=role.name)
|
|
except Role.DoesNotExist:
|
|
pass
|
|
else:
|
|
print('move members of', old_role)
|
|
role.members = old_role.members.all()
|