Browse Source

Merge branch 'jd-225-ldap-disable'

Conflicts:
	coin/mixins.py
Baptiste Jonglez 10 years ago
parent
commit
1f2a48020e
3 changed files with 21 additions and 10 deletions
  1. 4 0
      README.md
  2. 14 10
      coin/mixins.py
  3. 3 0
      coin/settings.py

+ 4 - 0
README.md

@@ -66,6 +66,10 @@ settings:
 At this point, you should setup your database.  Recommended is postgreSQL,
 but you might be able to use SQLite.  For more information, see https://www.illyse.org/projects/ils-si/wiki/Mise_en_place_environnement_de_dev
 
+If you don't want to use a LDAP, just set in your `settings_local.py`
+
+    LDAP_ENABLE = False
+
 The first time, you need to create the database, create a superuser, and
 import some base data to play with:
 

+ 14 - 10
coin/mixins.py

@@ -2,6 +2,7 @@
 from __future__ import unicode_literals
 
 from django.db import transaction
+from django.conf import settings
 
 
 class CoinLdapSyncMixin(object):
@@ -19,7 +20,6 @@ class CoinLdapSyncMixin(object):
         raise NotImplementedError('Using CoinLdapSyncModel require '
                                   'sync_to_ldap method being implemented')
 
-
     def delete_from_ldap(self, *args, **kwargs):
         raise NotImplementedError('Using CoinLdapSyncModel require '
                                   'delete_from_ldap method being implemented')
@@ -30,7 +30,8 @@ class CoinLdapSyncMixin(object):
         creation = (self.pk == None)
 
         # 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)
         super(CoinLdapSyncMixin, self).save(*args, **kwargs)
@@ -38,17 +39,20 @@ class CoinLdapSyncMixin(object):
         # Sauvegarde dans le LDAP
         # Si la sauvegarde LDAP échoue, Rollback la sauvegarde en base, sinon
         # 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
     def delete(self, *args, **kwargs):
         # Supprime de la base de donnée (mais sans commit, cf decorator)
         super(CoinLdapSyncMixin, self).delete(*args, **kwargs)
 
-        try:
-            self.delete_from_ldap()
-        except:
-            raise
+        if settings.LDAP_ACTIVATE:
+            try:
+                self.delete_from_ldap()
+            except:
+                raise

+ 3 - 0
coin/settings.py

@@ -230,6 +230,9 @@ TEST_RUNNER = 'django.test.runner.DiscoverRunner'
 
 GRAPHITE_SERVER = "http://graphite-dev.illyse.org"
 
+# Do we use LDAP or not
+LDAP_ACTIVATE=True
+
 # LDAP Base DNs
 LDAP_USER_BASE_DN = "ou=users,ou=unix,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR"
 LDAP_GROUP_BASE_DN = "ou=groups,ou=unix,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR"