|
@@ -13,12 +13,12 @@ class CoinLdapSyncMixin(object):
|
|
|
la cohérence entre base de donnée et LDAP
|
|
|
"""
|
|
|
|
|
|
- def sync_to_ldap(self, creation):
|
|
|
+ def sync_to_ldap(self, creation, *args, **kwargs):
|
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
|
'sync_to_ldap method being implemented')
|
|
|
|
|
|
|
|
|
- def delete_from_ldap(self):
|
|
|
+ def delete_from_ldap(self, *args, **kwargs):
|
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
|
'delete_from_ldap method being implemented')
|
|
|
|
|
@@ -27,6 +27,9 @@ class CoinLdapSyncMixin(object):
|
|
|
# Détermine si on est dans une création ou une mise à jour
|
|
|
creation = (self.pk == None)
|
|
|
|
|
|
+ # Récupère les champs mis à jour si cela est précisé
|
|
|
+ update_fields = kwargs['update_fields'] if kwargs['update_fields'] else None
|
|
|
+
|
|
|
# Sauvegarde en base de donnée (mais sans commit, cf decorator)
|
|
|
super(CoinLdapSyncMixin, self).save(*args, **kwargs)
|
|
|
|
|
@@ -34,7 +37,7 @@ class CoinLdapSyncMixin(object):
|
|
|
# Si la sauvegarde LDAP échoue, Rollback la sauvegarde en base, sinon
|
|
|
# commit
|
|
|
try:
|
|
|
- self.sync_to_ldap(creation)
|
|
|
+ self.sync_to_ldap(creation=creation,update_fields=update_fields)
|
|
|
except:
|
|
|
raise
|
|
|
|