From f27db3e7f5d3bb3fe0d36e1ab15e143ce45d269d Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Thu, 22 May 2008 22:26:49 +0200 Subject: [PATCH] When we touch usePassword in ud-info or ud-mailgate we now also update shadowLastChange. --- debian/changelog | 7 +++++++ ud-info | 15 ++++++++++++--- ud-mailgate | 3 ++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 9ad0104..362d7a0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 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 --- 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 diff --git a/ud-mailgate b/ud-mailgate index 69707f8..4fa2edf 100755 --- a/ud-mailgate +++ b/ud-mailgate @@ -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); -- 2.20.1