make Software inventory optional (softwareInventory) (#7800)

stephannn committed May 17, 2026 at 12:27 UTC 809ff2929d6c075a9d0c0c8824823706d01aa89e
4 files changed +9 -4
meshcentral-config-schema.json
+5
@@ -1453,6 +1453,11 @@
1453 }
1454 }
1455 },
1456 + "softwareInventory": {
1457 + "type": "boolean",
1458 + "default": false,
1459 + "description": "When set to true, the Software Inventory feature is enabled."
1460 + },
1461 "autoRemoveInactiveDevices": {
1462 "type": "integer",
1463 "default": 0,
meshuser.js
+2
@@ -646,6 +646,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
646 }
647 serverinfo.preConfiguredScripts = r;
648 }
649 + serverinfo.softwareinventory = domain?.softwareinventory === true;
650 if (domain.maxdeviceview != null) { serverinfo.maxdeviceview = domain.maxdeviceview; } // Maximum number of devices a user can view at any given time
651
652 // Send server information
@@ -1065,6 +1066,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
1066 command.value.indexOf('uninstallstoreapp ') === 0)));
1067
1068 if (isSoftwareCmd) {
1069 + if (domain.softwareinventory !== true) { if (func) { func(false); } break; }
1070 // Wir prüfen auf MESHRIGHT_DEVICEDETAILS (0x100000)
1071 parent.GetNodeWithRights(domain, user, command.nodeid, function (node, rights, visible) {
1072 var mesh = parent.meshes[node.meshid];
views/default.handlebars
+1 -2
@@ -8150,8 +8150,7 @@
8150 QV('MainDevTerminal', (((node.agent == null) && (node.intelamt != null)) || ((node.agent) && (node.agent.caps == null)) || ((node.agent) && ((node.agent.caps & 2) != 0)) || (node.intelamt && (node.intelamt.state == 2))) && (meshrights & 8) && terminalAccess);
8151 QV('MainDevFiles', (node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 4) != 0) && (meshrights & 8) && fileAccess);
8152 QV('MainDevInfo', (node.mtype < 3) && ((meshrights & 1048576) != 0));
8153 - //QV('MainDevApps', (rights & 1) != 0);
8154 - QV('MainDevApps', (isWindowsNode(node) && (meshrights & 1048576) != 0));
8153 + QV('MainDevApps', (serverinfo.softwareinventory === true && isWindowsNode(node) && (meshrights & 1048576) != 0));
8154 QV('MainDevAmt', (node.intelamt != null) && ((node.intelamt.state == 2) || (node.conn & 2)) && (meshrights & 8) && amtAccess);
8155 QV('MainDevConsole', (consoleRights && ((node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 8) != 0))) && (meshrights & 8));
8156 QV('MainDevPlugins', false);
views/default3.handlebars
+1 -2
@@ -9043,8 +9043,7 @@
9043 QV('MainDevTerminal', (((node.agent == null) && (node.intelamt != null)) || ((node.agent) && (node.agent.caps == null)) || ((node.agent) && ((node.agent.caps & 2) != 0)) || (node.intelamt && (node.intelamt.state == 2))) && (meshrights & 8) && terminalAccess);
9044 QV('MainDevFiles', (node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 4) != 0) && (meshrights & 8) && fileAccess);
9045 QV('MainDevInfo', (node.mtype < 3) && ((meshrights & 1048576) != 0));
9046 - //QV('MainDevApps', (rights & 1) != 0);
9047 - QV('MainDevApps', (isWindowsNode(node) && (meshrights & 1048576) != 0));
9046 + QV('MainDevApps', (serverinfo.softwareinventory === true && isWindowsNode(node) && (meshrights & 1048576) != 0));
9047 QV('MainDevAmt', (node.intelamt != null) && ((node.intelamt.state == 2) || (node.conn & 2)) && (meshrights & 8) && amtAccess);
9048 QV('MainDevConsole', (consoleRights && ((node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 8) != 0))) && (meshrights & 8));
9049 QV('MainDevPlugins', false);