"""
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)
- ldapdb.connection.delete_s(self.dn)
+ connection.delete_s(self.dn)
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
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)
- ldapdb.connection.add_s(new_dn, entry)
+ connection.add_s(new_dn, entry)
# update object
self.dn = new_dn
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))
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)
- 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)