summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg A. Mamontov <oleg@mamontov.net>2015-02-27 14:39:18 +0300
committerOleg A. Mamontov <oleg@mamontov.net>2015-02-27 14:41:35 +0300
commitfa19753707ba93c4fa7c8abc953d3c647e21be25 (patch)
tree247e981991d4f354f6c573a989ebe1da368716c9
parentfafb93490cd5841428aef39cbcf6e0f740e1a983 (diff)
downloadansible-modules-core-fa19753707ba93c4fa7c8abc953d3c647e21be25.tar.gz
On FreeBSD apply 'login_class' only if there is real change.
-rwxr-xr-xsystem/user.py13
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()