apps: retirer les rôles d'une autre OU que celle de l'utilisateur en cas d'édition

This commit is contained in:
Benjamin Dauvergne 2017-11-20 11:16:41 +01:00
parent 3fa73c60f7
commit d4690c208f
1 changed files with 9 additions and 0 deletions

View File

@ -147,6 +147,15 @@ class AppConfig(django.apps.AppConfig):
# do not allow to move an agent in the usagers OU
form.fields['ou'].queryset = form.fields['ou'].queryset.exclude(slug='usagers')
def generate_new_edit_save(old_save):
def edit_save(*args, **kwargs):
response = old_save(*args, **kwargs)
user = form.instance
user.roles.remove(*list(user.roles.exclude(ou=form.instance.ou)))
return response
return edit_save
form.save = generate_new_edit_save(form.save)
# Si un compte est validé, on interdit la modification des attributs coeurs
if form.instance.attributes.validated:
for field_name in form.fields: