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
use django's database router instead of hard-coding ldapdb.connection
[matthijs/upstream/django-ldapdb.git]
/
ldapdb
/
models
/
base.py
diff --git
a/ldapdb/models/base.py
b/ldapdb/models/base.py
index f0ed7468a23f60fde79eb5cf2bc12481d605400f..cd407a271192788178750a0dfad1542db00e3819 100644
(file)
--- a/
ldapdb/models/base.py
+++ b/
ldapdb/models/base.py
@@
-68,17
+68,20
@@
class Model(django.db.models.base.Model):
# meta-data
base_dn = None
# meta-data
base_dn = None
+ search_scope = ldap.SCOPE_SUBTREE
object_classes = ['top']
def __init__(self, *args, **kwargs):
super(Model, self).__init__(*args, **kwargs)
self.saved_pk = self.pk
object_classes = ['top']
def __init__(self, *args, **kwargs):
super(Model, self).__init__(*args, **kwargs)
self.saved_pk = self.pk
- def _collect_sub_objects(self,
collector
):
+ def _collect_sub_objects(self,
seen_objs, parent=None, nullable=False
):
"""
This private API seems to be called by the admin interface in django 1.2
"""
"""
This private API seems to be called by the admin interface in django 1.2
"""
- pass
+ pk_val = self._get_pk_val()
+ seen_objs.add(self.__class__, pk_val, self,
+ type(parent), parent, nullable)
def build_rdn(self):
"""
def build_rdn(self):
"""
@@
-103,11
+106,18
@@
class Model(django.db.models.base.Model):
"""
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
@@
-119,10
+129,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
@@
-139,7
+149,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))
@@
-148,11
+158,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)