]> git.proxmox.com Git - pve-access-control.git/blobdiff - PVE/RPCEnvironment.pm
fix access permissions for backup files
[pve-access-control.git] / PVE / RPCEnvironment.pm
index faa4fb2486e8ad5d5896cf862c1afe7da6154c8e..eb7b3c7645da60ca19106f5ec0281b9da2b13224 100644 (file)
@@ -295,7 +295,12 @@ sub check_volume_access {
        ($path, $ownervm, $vtype) = PVE::Storage::path($storecfg, $volid);
        if ($vtype eq 'iso' || $vtype eq 'vztmpl') {
            # we simply allow access 
-       } elsif (!$ownervm || ($ownervm != $vmid)) {
+       } elsif (defined($ownervm) && defined($vmid) && ($ownervm == $vmid)) {
+           # we are owner - allow access 
+       } elsif ($vtype eq 'backup' && $ownervm) {
+           $self->check($user, "/storage/$sid", ['Datastore.AllocateSpace']);
+           $self->check($user, "/vms/$ownervm", ['VM.Backup']);
+       } else {
            # allow if we are Datastore administrator
            $self->check($user, "/storage/$sid", ['Datastore.Allocate']);
        }