From: Peter Palfrader Date: Mon, 8 Dec 2008 10:40:26 +0000 (+0100) Subject: Do not call FinishConfirmSudopassword if we already decided to not commit this X-Git-Tag: userdir-ldap-0.3.53 X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=commitdiff_plain;h=a2abaa68eb9ca6118ebd24c3d04a5d3170858157 Do not call FinishConfirmSudopassword if we already decided to not commit this change mail because of parse errors. --- diff --git a/debian/changelog b/debian/changelog index 306038a..031dffb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,12 +1,14 @@ -userdir-ldap (0.3.XX) unstable; urgency=low +userdir-ldap (0.3.53) unstable; urgency=low * Properly show shadowlastchange and mail disabled message when locking an account, but not disabling email. It was written to ldap correctly, but we updated the data to display wrongly. * Fix formatting of PGP fingerprints - the double space was always one element too early. + * Do not call FinishConfirmSudopassword if we already decided to + not commit this change mail because of parse errors. - -- Peter Palfrader Tue, 02 Dec 2008 23:43:27 +0100 + -- Peter Palfrader Mon, 08 Dec 2008 11:39:54 +0100 userdir-ldap (0.3.52) unstable; urgency=low diff --git a/ud-mailgate b/ud-mailgate index e37c0d6..1c9f998 100755 --- a/ud-mailgate +++ b/ud-mailgate @@ -565,15 +565,18 @@ def HandleChange(Reply,DnRecord,Key): if ((GetAttr(oldAttrs[0],"userPassword").find("*LK*") != -1) or GetAttr(oldAttrs[0],"userPassword").startswith("!")): raise Error, "This account is locked"; - try: - Res = FinishConfirmSudopassword(l, GetAttr(DnRecord,"uid"), Attrs) - Result = Result + Res + "\n"; - except Error, e: - CommitChanges = 0 - Result = Result + "FinishConfirmSudopassword raised an error (%s) - no changes committed\n"%(e); + + if CommitChanges == 1: # only if we are still good to go + try: + Res = FinishConfirmSudopassword(l, GetAttr(DnRecord,"uid"), Attrs) + Result = Result + Res + "\n"; + except Error, e: + CommitChanges = 0 + Result = Result + "FinishConfirmSudopassword raised an error (%s) - no changes committed\n"%(e); + # Modify the record - Dn = "uid=" + GetAttr(DnRecord,"uid") + "," + BaseDn; if CommitChanges == 1: + Dn = "uid=" + GetAttr(DnRecord,"uid") + "," + BaseDn; l.modify_s(Dn,Attrs); Attribs = ""; @@ -582,7 +585,7 @@ def HandleChange(Reply,DnRecord,Key): if len(Attrs) == 0: raise Error, "User not found" Attribs = GPGEncrypt(PrettyShow(Attrs[0])+"\n","0x"+Key[1],Key[4]); - + Subst = {}; Subst["__FROM__"] = ChangeFrom; Subst["__EMAIL__"] = EmailAddress(DnRecord); @@ -792,4 +795,7 @@ except: if ErrType != EX_PERMFAIL: sys.exit(ErrType); sys.exit(0); - + +# vim:set et: +# vim:set ts=3: +# vim:set shiftwidth=3: