diff options
author | Oleg A. Mamontov <oleg@mamontov.net> | 2015-02-27 14:39:18 +0300 |
---|---|---|
committer | Oleg A. Mamontov <oleg@mamontov.net> | 2015-02-27 14:41:35 +0300 |
commit | fa19753707ba93c4fa7c8abc953d3c647e21be25 (patch) | |
tree | 247e981991d4f354f6c573a989ebe1da368716c9 | |
parent | fafb93490cd5841428aef39cbcf6e0f740e1a983 (diff) | |
download | ansible-modules-core-fa19753707ba93c4fa7c8abc953d3c647e21be25.tar.gz |
On FreeBSD apply 'login_class' only if there is real change.
-rwxr-xr-x | system/user.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/system/user.py b/system/user.py index e4a52806..4f96ab1e 100755 --- a/system/user.py +++ b/system/user.py @@ -797,8 +797,17 @@ class FreeBsdUser(User): cmd.append(self.shell) if self.login_class is not None: - cmd.append('-L') - cmd.append(self.login_class) + # find current login class + user_login_class = None + if os.path.exists(self.SHADOWFILE) and os.access(self.SHADOWFILE, os.R_OK): + for line in open(self.SHADOWFILE).readlines(): + if line.startswith('%s:' % self.name): + user_login_class = line.split(':')[4] + + # act only if login_class change + if self.login_class != user_login_class: + cmd.append('-L') + cmd.append(self.login_class) if self.groups is not None: current_groups = self.user_group_membership() |