From 86a69706318897e1535b70a3283bb43e474a60d7 Mon Sep 17 00:00:00 2001
From: Ylian Saint-Hilaire
Date: Fri, 25 Feb 2022 11:19:31 -0800
Subject: [PATCH] Added MeshCentral Assistant option to invitation email.
---
emails/mesh-invite.html | 5 +++++
emails/mesh-invite.txt | 6 ++++++
meshmail.js | 1 +
package.json | 16 ++++++++++++++--
views/default.handlebars | 5 ++++-
5 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/emails/mesh-invite.html b/emails/mesh-invite.html
index 7bc98ce0..e409929d 100644
--- a/emails/mesh-invite.html
+++ b/emails/mesh-invite.html
@@ -32,6 +32,11 @@
wget -q "[[[SERVERURL]]]/meshagents?script=1" --no-check-certificate -O ./meshinstall.sh && chmod 755 ./meshinstall.sh && sudo ./meshinstall.sh [[[SERVERURL]]] \'[[[MESHIDHEX]]]\'
+
To install the software, click here and follow the instructions.
diff --git a/emails/mesh-invite.txt b/emails/mesh-invite.txt
index ade301dc..42eadbb0 100644
--- a/emails/mesh-invite.txt
+++ b/emails/mesh-invite.txt
@@ -26,6 +26,12 @@ For Linux, cut & paste the following in a terminal to install the agent:
~wget -q "[[[SERVERURL]]]/meshagents?script=1" --no-check-certificate -O ./meshinstall.sh && chmod 755 ./meshinstall.sh && sudo ./meshinstall.sh [[[SERVERURL]]] '[[[MESHIDHEX]]]'
~
~
+~
+For MeshCentral Assistant on Windows, nagivate to the following link to complete the process:
+~
+~[[[SERVERURL]]]/meshagents?id=10006&meshid=[[[MESHIDHEX]]]&tag=mailto:[[[EMAIL]]]
+~
+~
~
To install the software, navigate to [[[SERVERURL]]][[[LINKURL]]][[[URLARGS2]]] and follow the instructions.
~
diff --git a/meshmail.js b/meshmail.js
index 7b47aeea..71d52fff 100644
--- a/meshmail.js
+++ b/meshmail.js
@@ -330,6 +330,7 @@ module.exports.CreateMeshMail = function (parent, domain) {
if (loginkey != null) { options.urlargs1 = '?key=' + loginkey; options.urlargs2 = '&key=' + loginkey; } else { options.urlargs1 = ''; options.urlargs2 = ''; }
options.windows = ((os == 0) || (os == 1)) ? 1 : 0;
options.linux = ((os == 0) || (os == 2)) ? 1 : 0;
+ options.assistant = ((os == 0) || (os == 5)) ? 1 : 0;
options.osx = ((os == 0) || (os == 3)) ? 1 : 0;
options.link = (os == 4) ? 1 : 0;
options.linkurl = createInviteLink(domain, meshid, flags, expirehours);
diff --git a/package.json b/package.json
index 3fbfc43a..a1ca195c 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,8 @@
"sample-config-advanced.json"
],
"dependencies": {
+ "@yetzt/nedb": "^1.8.0",
+ "archiver": "^4.0.2",
"body-parser": "^1.19.0",
"cbor": "~5.2.0",
"compression": "^1.7.4",
@@ -43,13 +45,23 @@
"express": "^4.17.0",
"express-handlebars": "^5.3.5",
"express-ws": "^4.0.0",
+ "image-size": "^1.0.1",
"ipcheck": "^0.1.0",
+ "loadavg-windows": "^1.1.1",
"minimist": "^1.2.5",
"multiparty": "^4.2.1",
- "@yetzt/nedb": "^1.8.0",
"node-forge": "^1.0.0",
+ "node-rdpjs-2": "^0.3.5",
+ "node-windows": "^0.1.4",
+ "nodemailer": "^6.7.2",
+ "otplib": "^10.2.3",
+ "pg": "^8.7.1",
+ "pgtools": "^0.3.2",
+ "ssh2": "^1.6.0",
+ "web-push": "^3.4.5",
"ws": "^5.2.3",
- "yauzl": "^2.10.0"
+ "yauzl": "^2.10.0",
+ "yubikeyotp": "^0.2.0"
},
"engines": {
"node": ">=10.0.0"
diff --git a/views/default.handlebars b/views/default.handlebars
index 436d2232..7e4fb1f6 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -4952,11 +4952,13 @@
x += '
' + format("Invite someone to install the mesh agent. An email with be sent with the link to the mesh agent installation for the \"{0}\" device group.", EscapeHtml(mesh.name)) + '
';
x += addHtmlValue("Name (optional)", '
');
x += addHtmlValue("Email", '
');
- x += addHtmlValue("Operating System", '
' + "Send installation link" + ' ' + "Any supported" + ' ' + "Windows only" + ' ' + "Apple macOS only" + ' ' + "Linux only" + ' ');
+ x += addHtmlValue("Operating System", '
' + "Send installation link" + ' ' + "Any supported" + ' ' + "Windows only" + ' ' + "Apple macOS only" + ' ' + "Linux only" + ' ' + "MeshCentral Assistant" + ' ');
x += '
';
x += addHtmlValue("Link Expiration", '' + "1 hour" + ' ' + "8 hours" + ' ' + "1 day" + ' ' + "1 week" + ' ' + "1 month" + ' ' + "Unlimited" + ' ');
x += '
';
+ x += '
';
x += addHtmlValue("Installation Type", '' + "Background and interactive" + ' ' + "Background only" + ' ' + "Interactive only" + ' ');
+ x += '
';
x += addHtmlValue("Message" + '
' + "(optional)", '
');
x += '
';
}
@@ -4981,6 +4983,7 @@
if (features & 64) {
QV('urlInviteDiv', Q('d2InviteType').value == 0);
QV('d2agentexpirediv', Q('agentInviteNameOs').value == 4);
+ QV('d2agentInstallTypeDiv2', Q('agentInviteNameOs').value < 2);
QV('emailInviteDiv', Q('d2InviteType').value == 1);
}
QV('d2agentInstallTypeDiv', parseInt(Q('d2agentType').value) < 2);