]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/lxc/Options.js
ui: lxc: resources: consider rootfs as a disk again
[pve-manager.git] / www / manager6 / lxc / Options.js
index e1c4ce10c34f543fd6f1029d6aa7d66c62ff30cc..d0a53fc7168cd194fa06f2fd6551a46b822c0746 100644 (file)
@@ -6,7 +6,6 @@ Ext.define('PVE.lxc.Options', {
 
     initComponent: function() {
        var me = this;
-       var i;
 
        var nodename = me.pveSelNode.data.node;
        if (!nodename) {
@@ -137,8 +136,7 @@ Ext.define('PVE.lxc.Options', {
            features: {
                header: gettext('Features'),
                defaultValue: Proxmox.Utils.noneText,
-               editor: Proxmox.UserName === 'root@pam'
-                   ? 'PVE.lxc.FeaturesEdit' : undefined,
+               editor: 'PVE.lxc.FeaturesEdit',
            },
            hookscript: {
                header: gettext('Hookscript'),
@@ -163,8 +161,8 @@ Ext.define('PVE.lxc.Options', {
        var revert_btn = new PVE.button.PendingRevert();
 
        var set_button_status = function() {
-           var sm = me.getSelectionModel();
-           var rec = sm.getSelection()[0];
+           let button_sm = me.getSelectionModel();
+           let rec = button_sm.getSelection()[0];
 
            if (!rec) {
                edit_btn.disable();
@@ -175,7 +173,15 @@ Ext.define('PVE.lxc.Options', {
            var pending = rec.data.delete || me.hasPendingChanges(key);
            var rowdef = rows[key];
 
-           edit_btn.setDisabled(!rowdef.editor);
+           if (key === 'features') {
+               let unprivileged = me.getStore().getById('unprivileged').data.value;
+               let root = Proxmox.UserName === 'root@pam';
+               let vmalloc = caps.vms['VM.Allocate'];
+               edit_btn.setDisabled(!(root || (vmalloc && unprivileged)));
+           } else {
+               edit_btn.setDisabled(!rowdef.editor);
+           }
+
            revert_btn.setDisabled(!pending);
        };