|
@@ -2,6 +2,7 @@
|
|
from __future__ import unicode_literals
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
|
|
+from django.conf import settings
|
|
|
|
|
|
|
|
|
|
class CoinLdapSyncMixin(object):
|
|
class CoinLdapSyncMixin(object):
|
|
@@ -19,7 +20,6 @@ class CoinLdapSyncMixin(object):
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
'sync_to_ldap method being implemented')
|
|
'sync_to_ldap method being implemented')
|
|
|
|
|
|
-
|
|
|
|
def delete_from_ldap(self, *args, **kwargs):
|
|
def delete_from_ldap(self, *args, **kwargs):
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
raise NotImplementedError('Using CoinLdapSyncModel require '
|
|
'delete_from_ldap method being implemented')
|
|
'delete_from_ldap method being implemented')
|
|
@@ -30,7 +30,8 @@ class CoinLdapSyncMixin(object):
|
|
creation = (self.pk == None)
|
|
creation = (self.pk == None)
|
|
|
|
|
|
# Récupère les champs mis à jour si cela est précisé
|
|
# Récupère les champs mis à jour si cela est précisé
|
|
- update_fields = kwargs['update_fields'] if 'update_fields' in kwargs else None
|
|
|
|
|
|
+ update_fields = kwargs[
|
|
|
|
+ 'update_fields'] if 'update_fields' in kwargs else None
|
|
|
|
|
|
# Sauvegarde en base de donnée (mais sans commit, cf decorator)
|
|
# Sauvegarde en base de donnée (mais sans commit, cf decorator)
|
|
super(CoinLdapSyncMixin, self).save(*args, **kwargs)
|
|
super(CoinLdapSyncMixin, self).save(*args, **kwargs)
|
|
@@ -38,17 +39,20 @@ class CoinLdapSyncMixin(object):
|
|
# Sauvegarde dans le LDAP
|
|
# Sauvegarde dans le LDAP
|
|
# Si la sauvegarde LDAP échoue, Rollback la sauvegarde en base, sinon
|
|
# Si la sauvegarde LDAP échoue, Rollback la sauvegarde en base, sinon
|
|
# commit
|
|
# commit
|
|
- try:
|
|
|
|
- self.sync_to_ldap(creation=creation, update_fields=update_fields)
|
|
|
|
- except:
|
|
|
|
- raise
|
|
|
|
|
|
+ if settings.LDAP_ACTIVATE:
|
|
|
|
+ try:
|
|
|
|
+ self.sync_to_ldap(
|
|
|
|
+ creation=creation, update_fields=update_fields)
|
|
|
|
+ except:
|
|
|
|
+ raise
|
|
|
|
|
|
@transaction.atomic
|
|
@transaction.atomic
|
|
def delete(self, *args, **kwargs):
|
|
def delete(self, *args, **kwargs):
|
|
# Supprime de la base de donnée (mais sans commit, cf decorator)
|
|
# Supprime de la base de donnée (mais sans commit, cf decorator)
|
|
super(CoinLdapSyncMixin, self).delete(*args, **kwargs)
|
|
super(CoinLdapSyncMixin, self).delete(*args, **kwargs)
|
|
|
|
|
|
- try:
|
|
|
|
- self.delete_from_ldap()
|
|
|
|
- except:
|
|
|
|
- raise
|
|
|
|
|
|
+ if settings.LDAP_ACTIVATE:
|
|
|
|
+ try:
|
|
|
|
+ self.delete_from_ldap()
|
|
|
|
+ except:
|
|
|
|
+ raise
|