Move import of spwd under a try block
Resolves issue #333. If spwd is not available, the password will be set regardless.
This commit is contained in:
parent
fc300723da
commit
73ffec9710
1 changed files with 13 additions and 3 deletions
12
library/user
12
library/user
|
@ -25,9 +25,13 @@ import os
|
|||
import pwd
|
||||
import grp
|
||||
import shlex
|
||||
import spwd
|
||||
import subprocess
|
||||
import sys
|
||||
try:
|
||||
import spwd
|
||||
HAVE_SPWD=True
|
||||
except:
|
||||
HAVE_SPWD=False
|
||||
|
||||
USERADD = "/usr/sbin/useradd"
|
||||
USERMOD = "/usr/sbin/usermod"
|
||||
|
@ -119,6 +123,10 @@ def user_add(user, **kwargs):
|
|||
else:
|
||||
return False
|
||||
|
||||
"""
|
||||
Without spwd, we would have to resort to reading /etc/shadow
|
||||
to get the encrypted string. For now, punt on idempotent password changes.
|
||||
"""
|
||||
def user_mod(user, **kwargs):
|
||||
cmd = [USERMOD]
|
||||
info = user_info(user)
|
||||
|
@ -227,9 +235,11 @@ def user_info(user):
|
|||
return False
|
||||
try:
|
||||
info = get_pwd_info(user)
|
||||
if HAVE_SPWD:
|
||||
sinfo = spwd.getspnam(user)
|
||||
except KeyError:
|
||||
return False
|
||||
if HAVE_SPWD:
|
||||
info[1] = sinfo[1]
|
||||
return info
|
||||
|
||||
|
|
Loading…
Reference in a new issue