From 75a90a952b8d65329c7f8cb055b5bb685d4e0b7d Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 15 Aug 2011 12:06:59 +1000 Subject: s4-samdb: added deleteuser() to samdb This is similar to deletegroup() --- source4/scripting/python/samba/samdb.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source4/scripting') diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py index 70f73da6f4..f8369d6c5a 100644 --- a/source4/scripting/python/samba/samdb.py +++ b/source4/scripting/python/samba/samdb.py @@ -393,6 +393,29 @@ member: %s else: self.transaction_commit() + + def deleteuser(self, username): + """Deletes a user + + :param username: Name of the target user + """ + + filter = "(&(sAMAccountName=%s)(objectCategory=%s,%s))" % (ldb.binary_encode(username), "CN=Person,CN=Schema,CN=Configuration", self.domain_dn()) + self.transaction_start() + try: + target = self.search(base=self.domain_dn(), scope=ldb.SCOPE_SUBTREE, + expression=filter, attrs=[]) + if len(target) == 0: + raise Exception('Unable to find user "%s"' % username) + assert(len(target) == 1) + self.delete(target[0].dn) + except Exception: + self.transaction_cancel() + raise + else: + self.transaction_commit() + + def setpassword(self, search_filter, password, force_change_at_next_login=False, username=None): """Sets the password for a user -- cgit