projects
/
matthijs
/
upstream
/
django-ldapdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor LDAP access in tests
[matthijs/upstream/django-ldapdb.git]
/
ldapdb
/
models
/
base.py
diff --git
a/ldapdb/models/base.py
b/ldapdb/models/base.py
index 661c2eda2593ae45bb0f91960d7e9f398d0cf7a6..0fc77ea8eded502b5a7a980ee933907337f3da93 100644
(file)
--- a/
ldapdb/models/base.py
+++ b/
ldapdb/models/base.py
@@
-36,6
+36,7
@@
import ldap
import logging
import django.db.models
import logging
import django.db.models
+from django.db import connections, router
from django.db.models import signals
import ldapdb
from django.db.models import signals
import ldapdb
@@
-102,15
+103,22
@@
class Model(django.db.models.base.Model):
return "%s,%s" % (self.build_rdn(), self.base_dn)
raise Exception("Could not build Distinguished Name")
return "%s,%s" % (self.build_rdn(), self.base_dn)
raise Exception("Could not build Distinguished Name")
- def delete(self):
+ def delete(self
, using=None
):
"""
Delete this entry.
"""
"""
Delete this entry.
"""
+ using = using or router.db_for_write(self.__class__, instance=self)
+ connection = connections[using]
logging.debug("Deleting LDAP entry %s" % self.dn)
logging.debug("Deleting LDAP entry %s" % self.dn)
-
ldapdb.
connection.delete_s(self.dn)
+ connection.delete_s(self.dn)
signals.post_delete.send(sender=self.__class__, instance=self)
signals.post_delete.send(sender=self.__class__, instance=self)
-
- def save(self):
+
+ def save(self, using=None):
+ """
+ Saves the current instance.
+ """
+ using = using or router.db_for_write(self.__class__, instance=self)
+ connection = connections[using]
if not self.dn:
# create a new entry
record_exists = False
if not self.dn:
# create a new entry
record_exists = False
@@
-122,10
+130,10
@@
class Model(django.db.models.base.Model):
continue
value = getattr(self, field.name)
if value:
continue
value = getattr(self, field.name)
if value:
- entry.append((field.db_column, field.get_db_prep_save(value, connection=
ldapdb.
connection)))
+ entry.append((field.db_column, field.get_db_prep_save(value, connection=connection)))
logging.debug("Creating new LDAP entry %s" % new_dn)
logging.debug("Creating new LDAP entry %s" % new_dn)
-
ldapdb.
connection.add_s(new_dn, entry)
+ connection.add_s(new_dn, entry)
# update object
self.dn = new_dn
# update object
self.dn = new_dn
@@
-142,7
+150,7
@@
class Model(django.db.models.base.Model):
new_value = getattr(self, field.name, None)
if old_value != new_value:
if new_value:
new_value = getattr(self, field.name, None)
if old_value != new_value:
if new_value:
- modlist.append((ldap.MOD_REPLACE, field.db_column, field.get_db_prep_save(new_value, connection=
ldapdb.
connection)))
+ modlist.append((ldap.MOD_REPLACE, field.db_column, field.get_db_prep_save(new_value, connection=connection)))
elif old_value:
modlist.append((ldap.MOD_DELETE, field.db_column, None))
elif old_value:
modlist.append((ldap.MOD_DELETE, field.db_column, None))
@@
-151,11
+159,11
@@
class Model(django.db.models.base.Model):
new_dn = self.build_dn()
if new_dn != self.dn:
logging.debug("Renaming LDAP entry %s to %s" % (self.dn, new_dn))
new_dn = self.build_dn()
if new_dn != self.dn:
logging.debug("Renaming LDAP entry %s to %s" % (self.dn, new_dn))
-
ldapdb.
connection.rename_s(self.dn, self.build_rdn())
+ connection.rename_s(self.dn, self.build_rdn())
self.dn = new_dn
logging.debug("Modifying existing LDAP entry %s" % self.dn)
self.dn = new_dn
logging.debug("Modifying existing LDAP entry %s" % self.dn)
-
ldapdb.
connection.modify_s(self.dn, modlist)
+ connection.modify_s(self.dn, modlist)
else:
logging.debug("No changes to be saved to LDAP entry %s" % self.dn)
else:
logging.debug("No changes to be saved to LDAP entry %s" % self.dn)