access permissions cleanup fix

for removed vms and pools

Signed-off-by: Alen Grizonic <a.grizonic@proxmox.com>
This commit is contained in:
Alen Grizonic 2015-08-13 13:41:33 +02:00 committed by Dietmar Maurer
parent d6eb662119
commit 3b4a3f94e1

View File

@ -478,10 +478,7 @@ sub delete_pool_acl {
my $path = "/pool/$pool";
foreach my $aclpath (keys %{$usercfg->{acl}}) {
delete ($usercfg->{acl}->{$aclpath})
if $usercfg->{acl}->{$aclpath} eq 'path';
}
delete ($usercfg->{acl}->{$path})
}
# we automatically create some predefined roles by splitting privs
@ -1096,6 +1093,27 @@ sub check_permissions {
return 1;
}
sub remove_vm_access {
my ($vmid) = @_;
my $delVMaccessFn = sub {
my $usercfg = cfs_read_file("user.cfg");
if (my $acl = $usercfg->{acl}->{'/vms/'.$vmid}) {
delete $usercfg->{acl}->{'/vms/'.$vmid};
cfs_write_file("user.cfg", $usercfg);
}
if (my $pool = $usercfg->{vms}->{$vmid}) {
if (my $data = $usercfg->{pools}->{$pool}) {
delete $data->{vms}->{$vmid};
delete $usercfg->{vms}->{$vmid};
cfs_write_file("user.cfg", $usercfg);
}
}
};
lock_user_config($delVMaccessFn, "access permissions cleanup for VM $vmid failed");
}
sub add_vm_to_pool {
my ($vmid, $pool) = @_;