qemu/HardwareView:

with the new Hardware privileges, we want to adapt a few places where
we now allow to show the add/edit window with those permissions.

form/{PCI,USB}Selector:

increase the minHeight property of the PCI/USBSelector, so that
the user can see the error message if he has not enough permissions.

data/PermPathStore:

add '/hardware' to the list of acl paths

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 www/manager6/data/PermPathStore.js |  1 +
 www/manager6/form/PCISelector.js   |  1 +
 www/manager6/form/USBSelector.js   |  1 +
 www/manager6/qemu/HardwareView.js  | 17 +++++++++--------
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/www/manager6/data/PermPathStore.js 
b/www/manager6/data/PermPathStore.js
index cf702c03..c3ac7f0e 100644
--- a/www/manager6/data/PermPathStore.js
+++ b/www/manager6/data/PermPathStore.js
@@ -8,6 +8,7 @@ Ext.define('PVE.data.PermPathStore', {
        { 'value': '/access' },
        { 'value': '/access/groups' },
        { 'value': '/access/realm' },
+       { 'value': '/mapping' },
        { 'value': '/nodes' },
        { 'value': '/pool' },
        { 'value': '/sdn/zones' },
diff --git a/www/manager6/form/PCISelector.js b/www/manager6/form/PCISelector.js
index 4e0a778f..9bf57e21 100644
--- a/www/manager6/form/PCISelector.js
+++ b/www/manager6/form/PCISelector.js
@@ -22,6 +22,7 @@ Ext.define('PVE.form.PCISelector', {
     onLoadCallBack: undefined,
 
     listConfig: {
+       minHeight: 80,
        width: 800,
        columns: [
            {
diff --git a/www/manager6/form/USBSelector.js b/www/manager6/form/USBSelector.js
index 011778d7..975b2646 100644
--- a/www/manager6/form/USBSelector.js
+++ b/www/manager6/form/USBSelector.js
@@ -71,6 +71,7 @@ Ext.define('PVE.form.USBSelector', {
            store: store,
            emptyText: emptyText,
            listConfig: {
+               minHeight: 80,
                width: 520,
                columns: [
                    {
diff --git a/www/manager6/qemu/HardwareView.js 
b/www/manager6/qemu/HardwareView.js
index af35a980..5b33b1e2 100644
--- a/www/manager6/qemu/HardwareView.js
+++ b/www/manager6/qemu/HardwareView.js
@@ -259,8 +259,8 @@ Ext.define('PVE.qemu.HardwareView', {
                group: 25,
                order: i,
                iconCls: 'usb',
-               editor: caps.nodes['Sys.Console'] ? 'PVE.qemu.USBEdit' : 
undefined,
-               never_delete: !caps.nodes['Sys.Console'],
+               editor: caps.nodes['Sys.Console'] || 
caps.mapping['Mapping.Use'] ? 'PVE.qemu.USBEdit' : undefined,
+               never_delete: !caps.nodes['Sys.Console'] && 
!caps.mapping['Mapping.Use'],
                header: gettext('USB Device') + ' (' + confid + ')',
            };
        }
@@ -270,8 +270,8 @@ Ext.define('PVE.qemu.HardwareView', {
                group: 30,
                order: i,
                tdCls: 'pve-itype-icon-pci',
-               never_delete: !caps.nodes['Sys.Console'],
-               editor: caps.nodes['Sys.Console'] ? 'PVE.qemu.PCIEdit' : 
undefined,
+               never_delete: !caps.nodes['Sys.Console'] && 
!caps.mapping['Mapping.Use'],
+               editor: caps.nodes['Sys.Console'] || 
caps.mapping['Mapping.Use'] ? 'PVE.qemu.PCIEdit' : undefined,
                header: gettext('PCI Device') + ' (' + confid + ')',
            };
        }
@@ -577,14 +577,15 @@ Ext.define('PVE.qemu.HardwareView', {
 
            // heuristic only for disabling some stuff, the backend has the 
final word.
            const noSysConsolePerm = !caps.nodes['Sys.Console'];
+           const noHWPerm = !caps.nodes['Sys.Console'] && 
!caps.mapping['Mapping.Use'];
            const noVMConfigHWTypePerm = !caps.vms['VM.Config.HWType'];
            const noVMConfigNetPerm = !caps.vms['VM.Config.Network'];
            const noVMConfigDiskPerm = !caps.vms['VM.Config.Disk'];
            const noVMConfigCDROMPerm = !caps.vms['VM.Config.CDROM'];
            const noVMConfigCloudinitPerm = !caps.vms['VM.Config.Cloudinit'];
 
-           me.down('#addUsb').setDisabled(noSysConsolePerm || isAtUsbLimit());
-           me.down('#addPci').setDisabled(noSysConsolePerm || 
isAtLimit('hostpci'));
+           me.down('#addUsb').setDisabled(noHWPerm || isAtUsbLimit());
+           me.down('#addPci').setDisabled(noHWPerm || isAtLimit('hostpci'));
            me.down('#addAudio').setDisabled(noVMConfigHWTypePerm || 
isAtLimit('audio'));
            me.down('#addSerial').setDisabled(noVMConfigHWTypePerm || 
isAtLimit('serial'));
            me.down('#addNet').setDisabled(noVMConfigNetPerm || 
isAtLimit('net'));
@@ -697,14 +698,14 @@ Ext.define('PVE.qemu.HardwareView', {
                                text: gettext('USB Device'),
                                itemId: 'addUsb',
                                iconCls: 'fa fa-fw fa-usb black',
-                               disabled: !caps.nodes['Sys.Console'],
+                               disabled: !caps.nodes['Sys.Console'] && 
!caps.mapping['Mapping.Use'],
                                handler: editorFactory('USBEdit'),
                            },
                            {
                                text: gettext('PCI Device'),
                                itemId: 'addPci',
                                iconCls: 'pve-itype-icon-pci',
-                               disabled: !caps.nodes['Sys.Console'],
+                               disabled: !caps.nodes['Sys.Console'] && 
!caps.mapping['Mapping.Use'],
                                handler: editorFactory('PCIEdit'),
                            },
                            {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to