When we touch usePassword in ud-info or ud-mailgate we now also update
authorPeter Palfrader <peter@palfrader.org>
Thu, 22 May 2008 20:26:49 +0000 (22:26 +0200)
committerPeter Palfrader <peter@palfrader.org>
Thu, 22 May 2008 20:26:49 +0000 (22:26 +0200)
shadowLastChange.

debian/changelog
ud-info
ud-mailgate

index 9ad0104..362d7a0 100644 (file)
@@ -1,3 +1,10 @@
+userdir-ldap (0.3.XX) Xnstable; urgency=low
+
+  * When we touch usePassword in ud-info or ud-mailgate we now also
+    update shadowLastChange.
+
+ -- Peter Palfrader <weasel@debian.org>  Thu, 22 May 2008 22:26:11 +0200
+
 userdir-ldap (0.3.29) unstable; urgency=low
 
   * ud-info: Add an option "L" to lock accounts in the interactive
diff --git a/ud-info b/ud-info
index 8cedd1d..7000ce9 100755 (executable)
--- a/ud-info
+++ b/ud-info
@@ -375,8 +375,11 @@ while(1):
 
       print "Setting password..";
       Pass = "{crypt}" + Pass;
-      l.modify_s(UserDn,[(ldap.MOD_REPLACE,"userPassword",Pass)]);
+      shadowLast = str(int(time.time()/24/60/60));
+      l.modify_s(UserDn,[(ldap.MOD_REPLACE,"userPassword",Pass),
+                         (ldap.MOD_REPLACE,"shadowLastChange",shadowLast)]);
       Attrs[0][1]["userPassword"] = [Pass];
+      Attrs[0][1]["shadowLastChange"] = [shadowLast];
       continue;
 
    # Randomize password
@@ -396,8 +399,11 @@ while(1):
         
       print "Setting password..";
       Pass = "{crypt}" + Pass;
-      l.modify_s(UserDn,[(ldap.MOD_REPLACE,"userPassword",Pass)]);
+      shadowLast = str(int(time.time()/24/60/60));
+      l.modify_s(UserDn,[(ldap.MOD_REPLACE,"userPassword",Pass),
+                         (ldap.MOD_REPLACE,"shadowLastChange",shadowLast)]);
       Attrs[0][1]["userPassword"] = [Pass];
+      Attrs[0][1]["shadowLastChange"] = [shadowLast];
       continue;
 
    # Lock account
@@ -407,11 +413,14 @@ while(1):
          continue;
 
       print "Setting password..";
+      shadowLast = str(int(time.time()/24/60/60));
       l.modify_s(UserDn,[
          (ldap.MOD_REPLACE,"userPassword","{crypt}*LK*"),
-         (ldap.MOD_REPLACE,"mailDisableMessage","account locked"), ]);
+         (ldap.MOD_REPLACE,"mailDisableMessage","account locked"),
+         (ldap.MOD_REPLACE,"shadowLastChange",shadowLast)]);
       Attrs[0][1]["userPassword"] = ["{crypt}*LK*"];
       Attrs[0][1]["mailDisableMessage"] = ["account locked"];
+      Attrs[0][1]["shadowLastChange"] = [shadowLast];
       continue;
 
    # Handle changing an arbitary value
index 69707f8..4fa2edf 100755 (executable)
@@ -551,7 +551,8 @@ def HandleChPass(Reply,DnRecord,Key):
       raise Error, "This account is locked";
 
    # Modify the password
-   Rec = [(ldap.MOD_REPLACE,"userPassword","{crypt}"+Pass)];
+   Rec = [(ldap.MOD_REPLACE,"userPassword","{crypt}"+Pass),
+          (ldap.MOD_REPLACE,"shadowLastChange",str(int(time.time()/24/60/60)))];
    Dn = "uid=" + GetAttr(DnRecord,"uid") + "," + BaseDn;
    l.modify_s(Dn,Rec);