From 30ab97799000953616edfc3e7487246ddf2652d6 Mon Sep 17 00:00:00 2001 From: David Gardner Date: Thu, 19 Oct 2023 12:02:31 +0100 Subject: [PATCH 1/3] Allow empty 'to_be_added' list as passing an empty list to "gpasswd -M ''" empties the group as expected. --- lib/puppet/provider/group/gpasswd.rb | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/puppet/provider/group/gpasswd.rb b/lib/puppet/provider/group/gpasswd.rb index eee04b2..26cb4a5 100644 --- a/lib/puppet/provider/group/gpasswd.rb +++ b/lib/puppet/provider/group/gpasswd.rb @@ -129,19 +129,17 @@ def members=(to_set) to_be_added = to_set.dup end - unless to_be_added.empty? - if @resource[:auth_membership] - cmd << [ command(:modmember),'-M',to_be_added.join(','), @resource[:name] ].shelljoin - else - to_be_added = to_be_added | @current_members - - !to_be_added.empty? && cmd += to_be_added.map { |x| - [ command(:addmember),'-a',x,@resource[:name] ].shelljoin - } - end + if @resource[:auth_membership] + cmd << [ command(:modmember),'-M',to_be_added.join(','), @resource[:name] ].shelljoin + else + to_be_added = to_be_added | @current_members - mod_group(cmd) + !to_be_added.empty? && cmd += to_be_added.map { |x| + [ command(:addmember),'-a',x,@resource[:name] ].shelljoin + } end + + mod_group(cmd) end private From 3629bf1df2d1bfc880e32787979fc7dd0cfc3bbe Mon Sep 17 00:00:00 2001 From: David Gardner Date: Thu, 19 Oct 2023 12:03:29 +0100 Subject: [PATCH 2/3] Move debug message to be printed when user is unknown, during exception handling. --- lib/puppet/provider/group/gpasswd.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/puppet/provider/group/gpasswd.rb b/lib/puppet/provider/group/gpasswd.rb index 26cb4a5..082a0b1 100644 --- a/lib/puppet/provider/group/gpasswd.rb +++ b/lib/puppet/provider/group/gpasswd.rb @@ -108,10 +108,9 @@ def members_insync?(is, should) Puppet::Etc.send('getpwnam', user) end - Puppet.debug("Ignoring unknown user: '#{user}'") - false rescue + Puppet.debug("Ignoring unknown user: '#{user}'") true end From ddfe9e6931e05f413ce28fe9807c3416371dcad2 Mon Sep 17 00:00:00 2001 From: David Gardner Date: Thu, 19 Oct 2023 12:18:18 +0100 Subject: [PATCH 3/3] Add CHANGELOG entry for this change, with new version number in place. --- CHANGELOG | 3 +++ metadata.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 6c0b552..02b99d2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +* Thu Oct 19 2023 David Gardner - 1.1.4-0 +- Add support for emptying group when no members are specified (#20) + * Sun Oct 03 2021 Iain Hallam - 1.1.3-0 - Add support for Debian diff --git a/metadata.json b/metadata.json index f14cab9..e2be26f 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "onyxpoint-gpasswd", - "version": "1.1.3", + "version": "1.1.4", "author": "Trevor Vaughan ", "summary": "Adds support for :manages_members to the Linux group native type", "license": "Apache-2.0",