From 6084476178d2db030378ef402b9ba5a70df52d1e Mon Sep 17 00:00:00 2001 From: Alen Grizonic Date: Wed, 19 Aug 2015 10:32:19 +0200 Subject: [PATCH] remove_storage_access: cleanup of access permissions for removed storage Signed-off-by: Alen Grizonic --- PVE/AccessControl.pm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/PVE/AccessControl.pm b/PVE/AccessControl.pm index 0400aee..9b70902 100644 --- a/PVE/AccessControl.pm +++ b/PVE/AccessControl.pm @@ -1112,6 +1112,28 @@ sub remove_vm_access { lock_user_config($delVMaccessFn, "access permissions cleanup for VM $vmid failed"); } +sub remove_storage_access { + my ($storeid) = @_; + + my $deleteStorageAccessFn = sub { + my $usercfg = cfs_read_file("user.cfg"); + my $modified; + + if (my $storage = $usercfg->{acl}->{"/storage/$storeid"}) { + delete $usercfg->{acl}->{"/storage/$storeid"}; + $modified = 1; + } + foreach my $pool (keys %{$usercfg->{pools}}) { + delete $usercfg->{pools}->{$pool}->{storage}->{$storeid}; + $modified = 1; + } + cfs_write_file("user.cfg", $usercfg) if $modified; + }; + + lock_user_config($deleteStorageAccessFn, + "access permissions cleanup for storage $storeid failed"); +} + sub add_vm_to_pool { my ($vmid, $pool) = @_; -- 2.39.2