mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Properly un expire account on creation (#44174)
When creating a new account, check to see if the expiration parameter is negative and pass in the appropriate parameter. Since the negative integer passed into expires is converted to time.struct_time which in turn gets converted to a formatted time string when passed to the underlying command, a -1 or large negative number would result in passing a date before 1970-01-01 to the underlying command. This had the opposite effect of creating an account with no expiration account resulting in a newly created account that was already expired, or just throwing an error on certain systems.
This commit is contained in:
parent
d8e362e701
commit
df335d91b0
2 changed files with 97 additions and 7 deletions
|
@ -560,7 +560,10 @@ class User(object):
|
|||
|
||||
if self.expires is not None:
|
||||
cmd.append('-e')
|
||||
cmd.append(time.strftime(self.DATE_FORMAT, self.expires))
|
||||
if self.expires < time.gmtime(0):
|
||||
cmd.append('')
|
||||
else:
|
||||
cmd.append(time.strftime(self.DATE_FORMAT, self.expires))
|
||||
|
||||
if self.password is not None:
|
||||
cmd.append('-p')
|
||||
|
@ -1008,7 +1011,10 @@ class FreeBsdUser(User):
|
|||
|
||||
if self.expires is not None:
|
||||
cmd.append('-e')
|
||||
cmd.append(time.strftime(self.DATE_FORMAT, self.expires))
|
||||
if self.expires < time.gmtime(0):
|
||||
cmd.append('0')
|
||||
else:
|
||||
cmd.append(time.strftime(self.DATE_FORMAT, self.expires))
|
||||
|
||||
# system cannot be handled currently - should we error if its requested?
|
||||
# create the user
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue