X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/faf8ae12e85eabb050b0f5eceb2cb67ad1de5261..4ffc2ea14e4ca0db54934cd79551446528bf3c26:/cookbooks/postgresql/providers/table.rb?ds=sidebyside diff --git a/cookbooks/postgresql/providers/table.rb b/cookbooks/postgresql/providers/table.rb index 4a2b43f5d..b1dc85f7b 100644 --- a/cookbooks/postgresql/providers/table.rb +++ b/cookbooks/postgresql/providers/table.rb @@ -42,19 +42,19 @@ action :create do end end - @current_resource.permissions.each do |user,privileges| - unless new_resource.permissions[user] - converge_by("revoke all for #{user} on #{new_resource}") do - Chef::Log.info("Revoking all for #{user} on #{new_resource}") - @pg.execute(:command => "REVOKE ALL ON #{@name} FROM \"#{user}\"", :database => new_resource.database) - end + @current_resource.permissions.each_key do |user| + next if new_resource.permissions[user] + + converge_by("revoke all for #{user} on #{new_resource}") do + Chef::Log.info("Revoking all for #{user} on #{new_resource}") + @pg.execute(:command => "REVOKE ALL ON #{@name} FROM \"#{user}\"", :database => new_resource.database) end end - new_resource.permissions.each do |user,new_privileges| + new_resource.permissions.each do |user, new_privileges| current_privileges = @current_resource.permissions[user] || {} new_privileges = Array(new_privileges) - + if new_privileges.include?(:all) new_privileges |= Chef::PostgreSQL::TABLE_PRIVILEGES end