'root@pam' has the privilege by default (since it's an SA), so we can
drop the string comparisons all around and check that privilege instead
when deciding to enable/disable buttons or views

Signed-off-by: Oguz Bektas <o.bek...@proxmox.com>
---
 www/manager6/Utils.js          | 3 ++-
 www/manager6/dc/Config.js      | 2 +-
 www/manager6/dc/UserView.js    | 2 +-
 www/manager6/lxc/Options.js    | 2 +-
 www/manager6/lxc/Resources.js  | 2 +-
 www/manager6/node/Config.js    | 2 +-
 www/manager6/window/Migrate.js | 4 ++--
 7 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index aafe359a..31ab94e8 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1656,7 +1656,8 @@ Ext.define('PVE.Utils', {
 
     showCephInstallOrMask: function(container, msg, nodename, callback) {
        if (msg.match(/not (installed|initialized)/i)) {
-           if (Proxmox.UserName === 'root@pam') {
+           let caps = Ext.state.Manager.get('GuiCap');
+           if (caps.node.SuperUser) {
                container.el.mask();
                if (!container.down('pveCephInstallWindow')) {
                    var isInstalled = !!msg.match(/not initialized/i);
diff --git a/www/manager6/dc/Config.js b/www/manager6/dc/Config.js
index 9c54b19d..917c426f 100644
--- a/www/manager6/dc/Config.js
+++ b/www/manager6/dc/Config.js
@@ -197,7 +197,7 @@ Ext.define('PVE.dc.Config', {
                });
            }
 
-           if (Proxmox.UserName === 'root@pam') {
+           if (caps.dc.SuperUser) {
                me.items.push({
                    xtype: 'pveACMEClusterView',
                    title: 'ACME',
diff --git a/www/manager6/dc/UserView.js b/www/manager6/dc/UserView.js
index bbfc4f7c..fe0c0149 100644
--- a/www/manager6/dc/UserView.js
+++ b/www/manager6/dc/UserView.js
@@ -29,7 +29,7 @@ Ext.define('PVE.dc.UserView', {
            selModel: sm,
            baseurl: '/access/users/',
            dangerous: true,
-           enableFn: rec => caps.access['User.Modify'] && rec.data.userid !== 
'root@pam',
+           enableFn: rec => caps.access['User.Modify'] && 
!caps.access.SuperUser,
            callback: () => reload(),
        });
        let run_editor = function() {
diff --git a/www/manager6/lxc/Options.js b/www/manager6/lxc/Options.js
index f2661dfc..f8eb8a5c 100644
--- a/www/manager6/lxc/Options.js
+++ b/www/manager6/lxc/Options.js
@@ -136,7 +136,7 @@ Ext.define('PVE.lxc.Options', {
            features: {
                header: gettext('Features'),
                defaultValue: Proxmox.Utils.noneText,
-               editor: Proxmox.UserName === 'root@pam' || 
caps.vms['VM.Allocate']
+               editor: caps.vms.SuperUser || caps.vms['VM.Allocate']
                    ? 'PVE.lxc.FeaturesEdit' : undefined,
            },
            hookscript: {
diff --git a/www/manager6/lxc/Resources.js b/www/manager6/lxc/Resources.js
index 15ee3c67..2081b4a2 100644
--- a/www/manager6/lxc/Resources.js
+++ b/www/manager6/lxc/Resources.js
@@ -257,7 +257,7 @@ Ext.define('PVE.lxc.RessourceView', {
            var isUsedDisk = isDisk && !isUnusedDisk;
 
            var noedit = rec.data.delete || !rowdef.editor;
-           if (!noedit && Proxmox.UserName !== 'root@pam' && 
key.match(/^mp\d+$/)) {
+           if (!noedit && !caps.vms.SuperUser && key.match(/^mp\d+$/)) {
                var mp = PVE.Parser.parseLxcMountPoint(value);
                if (mp.type !== 'volume') {
                    noedit = true;
diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js
index 68f80391..9f49f0dd 100644
--- a/www/manager6/node/Config.js
+++ b/www/manager6/node/Config.js
@@ -236,7 +236,7 @@ Ext.define('PVE.node.Config', {
                    itemId: 'apt',
                    upgradeBtn: {
                        xtype: 'pveConsoleButton',
-                       disabled: Proxmox.UserName !== 'root@pam',
+                       disabled: !caps.nodes.SuperUser,
                        text: gettext('Upgrade'),
                        consoleType: 'upgrade',
                        nodename: nodename,
diff --git a/www/manager6/window/Migrate.js b/www/manager6/window/Migrate.js
index 1c23abb3..20fcf81d 100644
--- a/www/manager6/window/Migrate.js
+++ b/www/manager6/window/Migrate.js
@@ -52,8 +52,8 @@ Ext.define('PVE.window.Migrate', {
                    }
            },
            setLocalResourceCheckboxHidden: function(get) {
-               if (get('running') || !get('migration.hasLocalResources') ||
-                   Proxmox.UserName !== 'root@pam') {
+               let caps = Ext.state.Manager.get('GuiCap');
+               if (get('running') || !get('migration.hasLocalResources') || 
caps.vms.SuperUser) {
                    return true;
                } else {
                    return false;
-- 
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