diff --git a/package.json b/package.json index 5988d8d4..e1d8159b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.8.33", + "version": "0.8.34", "keywords": [ "Remote Device Management", "Remote Device Monitoring", diff --git a/translate/translate.json b/translate/translate.json index 88eddbe8..20e761ea 100644 --- a/translate/translate.json +++ b/translate/translate.json @@ -6070,6 +6070,13 @@ "default.handlebars->33->1294" ] }, + { + "en": "Assistant (Windows)", + "xloc": [ + "default-mobile.handlebars->11->40", + "default.handlebars->33->47" + ] + }, { "cs": "asturština", "de": "Asturisch", @@ -41616,7 +41623,6 @@ "xloc": [ "default-mobile.handlebars->11->240", "default-mobile.handlebars->11->37", - "default-mobile.handlebars->11->40", "default-mobile.handlebars->11->41", "default-mobile.handlebars->11->42", "default-mobile.handlebars->11->43", @@ -41639,7 +41645,6 @@ "default.handlebars->33->2321", "default.handlebars->33->2328", "default.handlebars->33->44", - "default.handlebars->33->47", "default.handlebars->33->48", "default.handlebars->33->49", "default.handlebars->33->50", diff --git a/views/default.handlebars b/views/default.handlebars index f1827d07..ca096cf6 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -6417,7 +6417,7 @@ x += '
'; // Show action button, only show if we have permissions 4, 8, 64 - if (((meshrights & (4 + 8 + 64)) != 0) && (node.mtype != 3)) { x += ''; } + if (((meshrights & (4 + 8 + 64)) != 0) && (node.mtype != 3) && (node.agent.id != 34)) { x += ''; } x += ''; x += ''; if ((meshrights & 8) && ((connectivity & 1) || ((node.pmt == 1) && ((features2 & 2) != 0)))) { x += ''; } @@ -6460,62 +6460,64 @@ x += '
'; if ((node.agent) && (node.mtype != 3)) x += '' + "Interfaces" + ' '; if ((features & 0x00008000) && (xxmap != null)) x += '' + "Location" + ' '; - if ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 128) == 0)) { // Check if we should view tools - if ((terminalAccess) && ((meshrights & 8) != 0) && (node.agent != null) && (node.agent.id != 14)) x += '' + "MeshCmd" + ' '; - } - if ((args.xterm === 0) && (node.agent) && ((node.agent.caps & 2) != 0) && ((meshrights & 8) != 0) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 512) == 0))) { x += '' + "XTerm" + ' '; } + if ((node.agent.id != 14) && (node.agent.id != 34)) { + if ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 128) == 0)) { // Check if we should view tools + if ((terminalAccess) && ((meshrights & 8) != 0) && (node.agent != null) && (node.agent.id != 14)) x += '' + "MeshCmd" + ' '; + } + if ((args.xterm === 0) && (node.agent) && ((node.agent.caps & 2) != 0) && ((meshrights & 8) != 0) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 512) == 0))) { x += '' + "XTerm" + ' '; } - // RDP link, show this link only of the remote machine is Windows. - if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && (node.agent.id != 14)) { - if ((node.agent.id > 0) && (node.agent.id < 5)) { - if (navigator.platform.toLowerCase() == 'win32') { - if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.rdp != false)) { - x += '' + "RDP" + ' '; + // RDP link, show this link only of the remote machine is Windows. + if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0)) { + if ((node.agent.id > 0) && (node.agent.id < 5)) { + if (navigator.platform.toLowerCase() == 'win32') { + if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.rdp != false)) { + x += '' + "RDP" + ' '; + } + } + } + if (node.agent.id > 4) { + if ((navigator.platform.toLowerCase() == 'win32') || (navigator.platform.toLowerCase() == 'macintel')) { + if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.ssh != false)) { + x += '' + "SSH" + ' '; + } + } + if (navigator.platform.toLowerCase() == 'win32') { + if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.scp != false)) { + x += '' + "SCP" + ' '; + } } } - } - if (node.agent.id > 4) { if ((navigator.platform.toLowerCase() == 'win32') || (navigator.platform.toLowerCase() == 'macintel')) { - if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.ssh != false)) { - x += '' + "SSH" + ' '; - } - } - if (navigator.platform.toLowerCase() == 'win32') { - if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.scp != false)) { - x += '' + "SCP" + ' '; - } - } - } - if ((navigator.platform.toLowerCase() == 'win32') || (navigator.platform.toLowerCase() == 'macintel')) { - if ((serverinfo.devicemeshrouterlinks != null) && (Array.isArray(serverinfo.devicemeshrouterlinks.extralinks))) { - for (var i in serverinfo.devicemeshrouterlinks.extralinks) { - var r = serverinfo.devicemeshrouterlinks.extralinks[i], p = 0; - if (doesDeviceMatchFilterTags(node, r.filter)) { - if (typeof r.protocol == 'number') { p = r.protocol; } else if (r.protocol == 'http') { p = 1; } else if (r.protocol == 'https') { p = 2; } else if (r.protocol == 'rdp') { p = 3; } else if (r.protocol == 'ssh') { p = 4; } else if (r.protocol == 'scp') { p = 5; } - x += '' + r.name + ' '; + if ((serverinfo.devicemeshrouterlinks != null) && (Array.isArray(serverinfo.devicemeshrouterlinks.extralinks))) { + for (var i in serverinfo.devicemeshrouterlinks.extralinks) { + var r = serverinfo.devicemeshrouterlinks.extralinks[i], p = 0; + if (doesDeviceMatchFilterTags(node, r.filter)) { + if (typeof r.protocol == 'number') { p = r.protocol; } else if (r.protocol == 'http') { p = 1; } else if (r.protocol == 'https') { p = 2; } else if (r.protocol == 'rdp') { p = 3; } else if (r.protocol == 'ssh') { p = 4; } else if (r.protocol == 'scp') { p = 5; } + x += '' + r.name + ' '; + } } } } } - } - // noVNC link - if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && ((features & 0x20000000) == 0) && (node.agent.id != 14)) { - x += '' + "Web-VNC" + ' '; - } + // noVNC link + if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && ((features & 0x20000000) == 0)) { + x += '' + "Web-VNC" + ' '; + } - // MSTSC.js link - if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && ((features & 0x40000000) == 0) && (node.agent.id != 14)) { - x += '' + "Web-RDP" + ' '; - } + // MSTSC.js link + if ((((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && ((features & 0x40000000) == 0)) { + x += '' + "Web-RDP" + ' '; + } - // SSH link - if ((features2 & 0x200) && (((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && (node.agent.id != 14)) { - x += '' + "Web-SSH" + ' '; - } + // SSH link + if ((features2 & 0x200) && (((connectivity & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0)) { + x += '' + "Web-SSH" + ' '; + } - // MQTT options - if ((meshrights == 0xFFFFFFFF) && (features & 0x00400000)) { x += '' + "MQTT Login" + ' '; } + // MQTT options + if ((meshrights == 0xFFFFFFFF) && (features & 0x00400000)) { x += '' + "MQTT Login" + ' '; } + } x += '

' if (node.mtype == 3) {