X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=PVE%2FAccessControl.pm;h=9b70902f031291076e661eae3d1a202975838257;hp=0400aee030522fd40e2e88536f448915acd23297;hb=6084476178d2db030378ef402b9ba5a70df52d1e;hpb=57a704731b04392b2103b02573fdc4acdfd18a9e 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) = @_;