Do not call FinishConfirmSudopassword if we already decided to not commit this userdir-ldap-0.3.53
authorPeter Palfrader <peter@palfrader.org>
Mon, 8 Dec 2008 10:40:26 +0000 (11:40 +0100)
committerPeter Palfrader <peter@palfrader.org>
Mon, 8 Dec 2008 10:40:26 +0000 (11:40 +0100)
change mail because of parse errors.

debian/changelog
ud-mailgate

index 306038a..031dffb 100644 (file)
@@ -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 <weasel@debian.org>  Tue, 02 Dec 2008 23:43:27 +0100
+ -- Peter Palfrader <weasel@debian.org>  Mon, 08 Dec 2008 11:39:54 +0100
 
 userdir-ldap (0.3.52) unstable; urgency=low
 
index e37c0d6..1c9f998 100755 (executable)
@@ -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: