mirror of
https://git.proxmox.com/git/pve-access-control
synced 2025-06-13 15:27:32 +00:00
access permissions cleanup fix
for removed vms and pools Signed-off-by: Alen Grizonic <a.grizonic@proxmox.com>
This commit is contained in:
parent
d6eb662119
commit
3b4a3f94e1
@ -478,10 +478,7 @@ sub delete_pool_acl {
|
|||||||
|
|
||||||
my $path = "/pool/$pool";
|
my $path = "/pool/$pool";
|
||||||
|
|
||||||
foreach my $aclpath (keys %{$usercfg->{acl}}) {
|
delete ($usercfg->{acl}->{$path})
|
||||||
delete ($usercfg->{acl}->{$aclpath})
|
|
||||||
if $usercfg->{acl}->{$aclpath} eq 'path';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# we automatically create some predefined roles by splitting privs
|
# we automatically create some predefined roles by splitting privs
|
||||||
@ -1096,6 +1093,27 @@ sub check_permissions {
|
|||||||
return 1;
|
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 {
|
sub add_vm_to_pool {
|
||||||
my ($vmid, $pool) = @_;
|
my ($vmid, $pool) = @_;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user