only use legacy db parameters if available
[matthijs/upstream/django-ldapdb.git] / ldapdb / __init__.py
index 7dde301da3532915ec9e0a099a8b881026038f6c..4d6f8cf8a8a98eb20d4ab3e9cb910b13e68e54ff 100644 (file)
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
+from django import db
 from django.conf import settings
-from django.db import connections
+
+from ldapdb.router import Router
 
 def escape_ldap_filter(value):
     value = unicode(value)
@@ -43,11 +45,16 @@ def escape_ldap_filter(value):
                 .replace(')', '\\29') \
                 .replace('\0', '\\00')
 
-# Add the LDAP backend to the configured databases
-settings.DATABASES['ldap'] = {
-    'ENGINE': 'ldapdb.backends.ldap',
-    'NAME': settings.LDAPDB_SERVER_URI,
-    'USER': settings.LDAPDB_BIND_DN,
-    'PASSWORD': settings.LDAPDB_BIND_PASSWORD}
-connection = connections['ldap']
+# Legacy single database support
+if hasattr(settings, 'LDAPDB_SERVER_URI'):
+    # Add the LDAP backend
+    settings.DATABASES['ldap'] = {
+        'ENGINE': 'ldapdb.backends.ldap',
+        'NAME': settings.LDAPDB_SERVER_URI,
+        'USER': settings.LDAPDB_BIND_DN,
+        'PASSWORD': settings.LDAPDB_BIND_PASSWORD,
+        'SUPPORTS_TRANSACTIONS': False}
+    connection = db.connections['ldap']
 
+    # Add the LDAP router
+    db.router.routers.append(Router())