]> git.proxmox.com Git - qemu-server.git/commitdiff
close #2741: add VM.Config.Cloudinit permission
authorMira Limbeck <m.limbeck@proxmox.com>
Thu, 25 Jun 2020 14:48:47 +0000 (16:48 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 26 Jun 2020 07:41:43 +0000 (09:41 +0200)
This allows setting ciuser, cipassword and all other cloudinit settings that
are not part of the network without VM.Config.Network permissions.
Keep VM.Config.Network still as fallback so custom roles that add
VM.Config.Network but not VM.Config.Cloudinit don't break.

Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
PVE/API2/Qemu.pm

index 3965c269fdf1a850f7044bb85c453250e5c965cd..b33359d2aa743d57759d42fa369c1016ad2cb5e1 100644 (file)
@@ -358,8 +358,10 @@ my $check_vm_modify_config_perm = sub {
            $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.PowerMgmt']);
        } elsif ($diskoptions->{$opt}) {
            $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.Disk']);
-       } elsif ($cloudinitoptions->{$opt} || ($opt =~ m/^(?:net|ipconfig)\d+$/)) {
+       } elsif ($opt =~ m/^(?:net|ipconfig)\d+$/) {
            $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.Network']);
+       } elsif ($cloudinitoptions->{$opt}) {
+           $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.Cloudinit', 'VM.Config.Network'], 1);
        } elsif ($opt eq 'vmstate') {
            # the user needs Disk and PowerMgmt privileges to change the vmstate
            # also needs privileges on the storage, that will be checked later
@@ -1354,6 +1356,7 @@ my $vm_config_perm_list = [
            'VM.Config.Network',
            'VM.Config.HWType',
            'VM.Config.Options',
+           'VM.Config.Cloudinit',
     ];
 
 __PACKAGE__->register_method({