From 2768ea4441b8da0f00848c59a954ac42c1c18426 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 24 Apr 2019 09:58:25 -0400 Subject: [PATCH] Set "password last set" time in passdb entries (#2949) --- src/middlewared/middlewared/plugins/smb.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/middlewared/middlewared/plugins/smb.py b/src/middlewared/middlewared/plugins/smb.py index 8e93ee598bac..3f74ff8ea85b 100644 --- a/src/middlewared/middlewared/plugins/smb.py +++ b/src/middlewared/middlewared/plugins/smb.py @@ -428,9 +428,14 @@ def update_passdb_user(self, username): except Exception: nt_passwd = '' + pass_last_set_time = int(smbpasswd_string[5].strip("LCT-"), 16) + if smbpasswd_string[3] != nt_passwd: p.nt_passwd = binascii.unhexlify(smbpasswd_string[3]) pdb_entry_changed = True + if pass_last_set_time != p.pass_last_set_time: + p.pass_last_set_time = pass_last_set_time + pdb_entry_changed = True if 'D' in smbpasswd_string[4] and not (p.acct_ctrl & SAMR_AcctFlags.DISABLED): p.acct_ctrl |= SAMR_AcctFlags.DISABLED pdb_entry_changed = True @@ -480,9 +485,14 @@ def synchronize_passdb(self): except Exception: nt_passwd = '' + pass_last_set_time = int(smbpasswd_string[5].strip("LCT-"), 16) + if smbpasswd_string[3] != nt_passwd: p.nt_passwd = binascii.unhexlify(smbpasswd_string[3]) pdb_entry_changed = True + if pass_last_set_time != p.pass_last_set_time: + p.pass_last_set_time = pass_last_set_time + pdb_entry_changed = True if 'D' in smbpasswd_string[4] and not (p.acct_ctrl & SAMR_AcctFlags.DISABLED): p.acct_ctrl |= SAMR_AcctFlags.DISABLED pdb_entry_changed = True