mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-05-21 09:33:47 -04:00
Add flags to meshes to prefer agentname when synced and to override synced name temporarily (#6809)
* Add flags to meshes to prefer agentname when synced and to override synced name temporarily * automatically enable sub-options * change caption * apply changes to bootstrap UI
This commit is contained in:
parent
c202339b67
commit
5f68458cc5
@ -807,7 +807,12 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
|
||||
if (device.agent.ver != obj.agentInfo.agentVersion) { device.agent.ver = obj.agentInfo.agentVersion; change = 1; changes.push('agent version'); }
|
||||
if (device.agent.id != obj.agentInfo.agentId) { device.agent.id = obj.agentInfo.agentId; change = 1; changes.push('agent type'); }
|
||||
if ((device.agent.caps & 24) != (obj.agentInfo.capabilities & 24)) { device.agent.caps = obj.agentInfo.capabilities; change = 1; changes.push('agent capabilities'); } // If agent console or javascript support changes, update capabilities
|
||||
if (mesh.flags && (mesh.flags & 2) && (device.name != obj.agentInfo.computerName)) { device.name = obj.agentInfo.computerName; change = 1; } // We want the server name to be sync'ed to the hostname
|
||||
// We want the server name to be sync'ed to the hostname or the --agentName
|
||||
// (flag 16 allows to override the name until next connection)
|
||||
if (mesh.flags && (mesh.flags & 2)) {
|
||||
var preferredName = (mesh.flags & 8) && obj.agentName || obj.agentInfo.computerName;
|
||||
if (device.name != preferredName) {device.name = preferredName; change = 1; }
|
||||
}
|
||||
if (device.ip != obj.remoteaddr) { device.ip = obj.remoteaddr; change = 1; }
|
||||
|
||||
if (change == 1) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
@ -7497,7 +7497,7 @@
|
||||
// Add node name
|
||||
var nname = EscapeHtml(node.name), nnameEx;
|
||||
if (nname.length == 0) { nname = '<i>' + "None" + '</i>'; }
|
||||
if (((meshrights & 4) != 0) && ((!mesh.flags) || ((mesh.flags & 2) == 0))) { nname = '<span tabindex=0 title="' + "Click here to edit the server-side device name" + '" onclick=showEditNodeValueDialog(0) onkeyup="if (event.key == \'Enter\') showEditNodeValueDialog(0)" style=cursor:pointer>' + nname + ' <img class=hoverButton src="images/link5.png" /></span>'; }
|
||||
if (((meshrights & 4) != 0) && ((!mesh.flags) || ((mesh.flags & 2) == 0 || (mesh.flags & 16)))) { nname = '<span tabindex=0 title="' + "Click here to edit the server-side device name" + '" onclick=showEditNodeValueDialog(0) onkeyup="if (event.key == \'Enter\') showEditNodeValueDialog(0)" style=cursor:pointer>' + nname + ' <img class=hoverButton src="images/link5.png" /></span>'; }
|
||||
nnameEx = nname;
|
||||
if (mesh) { nname += '<span style=color:#AAA;font-size:small> - ' + EscapeHtml(mesh.name) + '</span>'; }
|
||||
QH('p10deviceName', nname);
|
||||
@ -13586,6 +13586,8 @@
|
||||
if (currentMesh.flags) {
|
||||
if (currentMesh.flags & 1) { meshFeatures.push("Auto-Remove"); }
|
||||
if (currentMesh.flags & 2) { meshFeatures.push((currentMesh.mtype == 4)?"Port Name Sync":"Hostname Sync"); }
|
||||
if (currentMesh.flags & 8) { meshFeatures.push("prefer --agentname"); }
|
||||
if (currentMesh.flags & 16) { meshFeatures.push("allow override"); }
|
||||
if ((serverinfo.devGroupSessionRecording == 1) && (currentMesh.flags & 4)) { meshFeatures.push("Record Sessions"); }
|
||||
}
|
||||
if ((typeof currentMesh.expireDevs == 'number') && (currentMesh.expireDevs > 0)) { meshFeatures.push("Remove inactive"); }
|
||||
@ -14067,6 +14069,10 @@
|
||||
}
|
||||
if ((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) {
|
||||
x += '<div><label><input type=checkbox id=d20flag2 onchange=p20editmeshfeaturesValidate() ' + ((flags & 2) ? 'checked' : '') + '>' + ((currentMesh.mtype == 4)?"Sync server device name to port name":"Sync server device name to hostname") + '</label><br></div>';
|
||||
if (currentMesh.mtype == 2) {
|
||||
x += '<div style="margin-left:8px"><label><input type=checkbox id=d20flag8 onchange=p20editmeshfeaturesValidate() ' + ((flags & 8) ? 'checked' : '') + '>' + "Prefer value of --agentName" + '</label><br></div>';
|
||||
x += '<div style="margin-left:8px"><label><input type=checkbox id=d20flag16 onchange=p20editmeshfeaturesValidate() ' + ((flags & 16) ? 'checked' : '') + '>' + "Allow to override server device name until next connection" + '</label><br></div>';
|
||||
}
|
||||
x += '<div><label><input type=checkbox id=d20flag1 onchange=p20editmeshfeaturesValidate() ' + ((flags & 1) ? 'checked' : '') + '>' + "Remove device on disconnect" + '</label><br></div>';
|
||||
}
|
||||
x += '<div><label><input type=checkbox id=d20expireDevice onchange=p20editmeshfeaturesValidate() ' + ((expire > 0) ? 'checked' : '') + '>' + "Automatically remove inactive devices" + '</label><br></div>';
|
||||
@ -14087,6 +14093,16 @@
|
||||
function p20editmeshfeaturesValidate() {
|
||||
var flags = 0, ok = true;
|
||||
if (((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) && (Q('d20flag1').checked)) { flags += 1; }
|
||||
if (currentMesh.mtype == 2) {
|
||||
if (Q('d20flag2').checked) {
|
||||
flags += 2;
|
||||
if (event.currentTarget.id == 'd20flag2') { Q('d20flag8').checked = true; Q('d20flag16').checked = true; }
|
||||
}
|
||||
for (const flag of [8, 16]) {
|
||||
const element = Q('d20flag' + flag);
|
||||
if ((element.checked = element.checked && !(element.disabled = !(flags & 2)))) { flags += flag; }
|
||||
}
|
||||
}
|
||||
QE('d20expireDevice', (flags & 1) == 0);
|
||||
var x = ((flags & 1) == 0) && Q('d20expireDevice').checked;
|
||||
QV('d20expireDeviceDev', x);
|
||||
@ -14099,6 +14115,8 @@
|
||||
if ((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) {
|
||||
if (Q('d20flag1').checked) { flags += 1; }
|
||||
if (Q('d20flag2').checked) { flags += 2; }
|
||||
if (Q('d20flag8').checked) { flags += 8; }
|
||||
if (Q('d20flag16').checked) { flags += 16; }
|
||||
}
|
||||
if ((serverinfo.devGroupSessionRecording == 1) && (currentMesh.mtype != 4)) { if (Q('d20flag4').checked) { flags += 4; } }
|
||||
var expireDevs = 0;
|
||||
|
@ -8168,7 +8168,7 @@
|
||||
// Add node name
|
||||
var nname = EscapeHtml(node.name), nnameEx;
|
||||
if (nname.length == 0) { nname = '<i>' + "None" + '</i>'; }
|
||||
if (((meshrights & 4) != 0) && ((!mesh.flags) || ((mesh.flags & 2) == 0))) { nname = '<span tabindex=0 title="' + "Click here to edit the server-side device name" + '" onclick=showEditNodeValueDialog(0) onkeyup="if (event.key == \'Enter\') showEditNodeValueDialog(0)" role="button">' + nname + ' <i class="fa-solid fa-pencil fa-2xs"/></i></span>'; }
|
||||
if (((meshrights & 4) != 0) && ((!mesh.flags) || ((mesh.flags & 2) == 0 || (mesh.flags & 16)))) { nname = '<span tabindex=0 title="' + "Click here to edit the server-side device name" + '" onclick=showEditNodeValueDialog(0) onkeyup="if (event.key == \'Enter\') showEditNodeValueDialog(0)" role="button">' + nname + ' <i class="fa-solid fa-pencil fa-2xs"/></i></span>'; }
|
||||
nnameEx = nname;
|
||||
if (mesh) { nname += '<span style=color:#AAA;font-size:small> - ' + EscapeHtml(mesh.name) + '</span>'; }
|
||||
QH('p10deviceName', nname);
|
||||
@ -14628,6 +14628,8 @@
|
||||
if (currentMesh.flags) {
|
||||
if (currentMesh.flags & 1) { meshFeatures.push("Auto-Remove"); }
|
||||
if (currentMesh.flags & 2) { meshFeatures.push((currentMesh.mtype == 4) ? "Port Name Sync" : "Hostname Sync"); }
|
||||
if (currentMesh.flags & 8) { meshFeatures.push("prefer --agentname"); }
|
||||
if (currentMesh.flags & 16) { meshFeatures.push("allow override"); }
|
||||
if ((serverinfo.devGroupSessionRecording == 1) && (currentMesh.flags & 4)) { meshFeatures.push("Record Sessions"); }
|
||||
}
|
||||
if ((typeof currentMesh.expireDevs == 'number') && (currentMesh.expireDevs > 0)) { meshFeatures.push("Remove inactive"); }
|
||||
@ -15144,6 +15146,10 @@
|
||||
}
|
||||
if ((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) {
|
||||
x += '<div class="form-check"><label><input type=checkbox id=d20flag2 class="form-check-input me-2" onchange=p20editmeshfeaturesValidate() ' + ((flags & 2) ? 'checked' : '') + '>' + ((currentMesh.mtype == 4) ? "Sync server device name to port name" : "Sync server device name to hostname") + '</label><br></div>';
|
||||
if (currentMesh.mtype == 2) {
|
||||
x += '<div style="margin-left:12px"><label><input type=checkbox id=d20flag8 class="form-check-input me-2" onchange=p20editmeshfeaturesValidate() ' + ((flags & 8) ? 'checked' : '') + '>' + "Prefer value of --agentName" + '</label><br></div>';
|
||||
x += '<div style="margin-left:12px"><label><input type=checkbox id=d20flag16 class="form-check-input me-2" onchange=p20editmeshfeaturesValidate() ' + ((flags & 16) ? 'checked' : '') + '>' + "Allow to override server device name until next connection" + '</label><br></div>';
|
||||
}
|
||||
x += '<div class="form-check"><label><input type=checkbox id=d20flag1 class="form-check-input me-2" onchange=p20editmeshfeaturesValidate() ' + ((flags & 1) ? 'checked' : '') + '>' + "Remove device on disconnect" + '</label><br></div>';
|
||||
}
|
||||
x += '<div class="form-check"><label><input type=checkbox id=d20expireDevice class="form-check-input me-2" onchange=p20editmeshfeaturesValidate() ' + ((expire > 0) ? 'checked' : '') + '>' + "Automatically remove inactive devices" + '</label><br></div>';
|
||||
@ -15165,6 +15171,16 @@
|
||||
function p20editmeshfeaturesValidate() {
|
||||
var flags = 0, ok = true;
|
||||
if (((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) && (Q('d20flag1').checked)) { flags += 1; }
|
||||
if (currentMesh.mtype == 2) {
|
||||
if (Q('d20flag2').checked) {
|
||||
flags += 2;
|
||||
if (event.currentTarget.id == 'd20flag2') { Q('d20flag8').checked = true; Q('d20flag16').checked = true; }
|
||||
}
|
||||
for (const flag of [8, 16]) {
|
||||
const element = Q('d20flag' + flag);
|
||||
if ((element.checked = element.checked && !(element.disabled = !(flags & 2)))) { flags += flag; }
|
||||
}
|
||||
}
|
||||
QE('d20expireDevice', (flags & 1) == 0);
|
||||
var x = ((flags & 1) == 0) && Q('d20expireDevice').checked;
|
||||
QV('d20expireDeviceDev', x);
|
||||
@ -15177,6 +15193,8 @@
|
||||
if ((currentMesh.mtype == 2) || (currentMesh.mtype == 4)) {
|
||||
if (Q('d20flag1').checked) { flags += 1; }
|
||||
if (Q('d20flag2').checked) { flags += 2; }
|
||||
if (Q('d20flag8').checked) { flags += 8; }
|
||||
if (Q('d20flag16').checked) { flags += 16; }
|
||||
}
|
||||
if ((serverinfo.devGroupSessionRecording == 1) && (currentMesh.mtype != 4)) { if (Q('d20flag4').checked) { flags += 4; } }
|
||||
var expireDevs = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user