Project

General

Profile

Anomalie #195

Objets non supprimés du LDAP

Added by Baptiste Jonglez over 7 years ago. Updated about 7 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
Target version:
Start date:
06/09/2014
Due date:
% Done:

100%

Estimated time:
Spent time:

Description

La méthode delete() des modèles Django n'est pas appelée dans tous les cas, notamment en cas de suppression "bulk" (par lots) :

https://docs.djangoproject.com/en/1.6/topics/db/queries/#topics-db-queries-delete

Si on supprime plusieurs objets d'un coup (par exemple via l'admin), ceux-ci ne sont donc pas supprimés du LDAP.

Comment reproduire :

  • Créer un objet VPNSubscription dans l'admin
  • Dans la liste des VPNSubscription, cocher l'objet nouvellement créé et choisir "supprimer les vpn subscriptions sélectionnés"
  • Confirmer la suppression
  • Observer que l'objet est toujours dans le LDAP

D'après la doc, il faut itérer sur les QuerySet pour appeler delete() sur chaque objet. Je ne vois pas bien comment faire ça dans le cas général, notamment pour l'admin.

#1

Updated by Baptiste Jonglez over 7 years ago

On devrait pouvoir utiliser des signaux :

« The delete() method does a bulk delete and does not call any delete() methods on your models. It does, however, emit the pre_delete and post_delete signals for all deleted objects (including cascaded deletions). »

Source : https://docs.djangoproject.com/en/1.6/ref/models/querysets/#django.db.models.query.QuerySet.delete

#2

Updated by Baptiste Jonglez over 7 years ago

Autre solution par Capslock : écrire une action de suppression custom pour l'admin.

Référence : https://docs.djangoproject.com/en/1.6/ref/contrib/admin/actions/

#3

Updated by Hugo Lefeuvre about 7 years ago

  • Status changed from Nouveau to Résolu
  • Assignee changed from Fabien Michel to Hugo Lefeuvre
  • % Done changed from 0 to 100

Le problème est résolu pour les classes VPNConfiguration et Member. Les autres classes n'interagissent pas de la même manière avec le LDAP et le problème semble donc ne pas se poser.

#4

Updated by Baptiste Jonglez about 7 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF