]> git.proxmox.com Git - pve-storage.git/commitdiff
fix permission check for backup file removal
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 1 Mar 2013 05:04:03 +0000 (06:04 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 1 Mar 2013 05:04:03 +0000 (06:04 +0100)
Makefile
PVE/API2/Storage/Content.pm
changelog.Debian

index 2f612e01ab638c9732d18a18ccd2d93ac432d39f..3c04f4fe5da1d0732c23ead45e0153e6454958c0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ RELEASE=2.3
 
 VERSION=2.3
 PACKAGE=libpve-storage-perl
-PKGREL=4
+PKGREL=5
 
 DESTDIR=
 PREFIX=/usr
index 7a8249c797eb21d6951b8f79ff23c344448ab842..ac784bd19f5507c4945ad58a86ed46c89386069a 100644 (file)
@@ -249,7 +249,7 @@ __PACKAGE__->register_method ({
     method => 'DELETE',
     description => "Delete volume",
     permissions => { 
-       description => "You need 'Datastore.Allocate' privilege on the storage ('Datastore.AllocateSpace' is not enough).",
+       description => "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
        user => 'all',
     },
     protected => 1,
@@ -272,11 +272,17 @@ __PACKAGE__->register_method ({
        my $rpcenv = PVE::RPCEnvironment::get();
        my $authuser = $rpcenv->get_user();
 
+       my $cfg = cfs_read_file('storage.cfg');
+
        my ($volid, $storeid) = &$real_volume_id($param->{storage}, $param->{volume});
-       
-       $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.Allocate']);
 
-       my $cfg = cfs_read_file('storage.cfg');
+       my ($path, $ownervm, $vtype) = PVE::Storage::path($cfg, $volid);
+       if ($vtype eq 'backup' && $ownervm) {
+           $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.AllocateSpace']);
+           $rpcenv->check($authuser, "/vms/$ownervm", ['VM.Backup']);
+       } else {
+           $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.Allocate']);
+       }
 
        PVE::Storage::vdisk_free ($cfg, $volid);
 
index 5a3022a1ccf4793d70863d5d877a678e23a58709..2cecccb98e8986518e428c5c35f5f804f3f59643 100644 (file)
@@ -1,3 +1,11 @@
+libpve-storage-perl (2.3-5) unstable; urgency=low
+
+  * Allow removal of backup volumes if the user has
+    Datastore.AllocateSpace privilege on the storage and VM.Backup
+    privilege on the VM
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 01 Mar 2013 06:03:24 +0100
+
 libpve-storage-perl (2.3-4) unstable; urgency=low
 
   * rbd: rework pool - username - auth_supported options