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 += '