Intel® AMT Redirection port or KVM feature is disabled, click here to enable it.
Remote computer is not powered on, click here to issue a power command.
Disconnected
Files -
Disconnected
✓
✗
Intel® AMT -
Events -
Show
General -
General -
Events -
Show
My Server Stats
Log-X
✖
File Selection
Upload File
Agent Remote Desktop
Quality
Scaling
Frame rate
Intel® AMT Hardware KVM
Image Encoding
Other Settings
\ No newline at end of file
diff --git a/views/default.handlebars b/views/default.handlebars
index 4307fb77..0392a5a4 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -6958,7 +6958,7 @@
x += 'Manage Users ';
x += 'Lock Account ';
x += 'No New Device Groups ';
- x += 'No MeshCmd ';
+ x += 'No Tools (MeshCmd/Router) ';
x += '';
var user = users[userid.toLowerCase()];
setDialogMode(2, "Server Permissions", 3, showUserAdminDialogEx, x, user);
@@ -6971,7 +6971,7 @@
Q('ua_serverupdate').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 16) != 0)); // Server Update
Q('ua_lockedaccount').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 32) != 0)); // Account locked
Q('ua_nonewgroups').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 64) != 0)); // No New Groups
- Q('ua_nomeshcmd').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 128) != 0)); // No MeshCmd
+ Q('ua_nomeshcmd').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 128) != 0)); // No Tools (MeshCMD / Router)
}
QE('ua_fulladmin', userinfo.siteadmin == 0xFFFFFFFF);
QE('ua_serverbackup', userinfo.siteadmin == 0xFFFFFFFF);
@@ -7473,12 +7473,13 @@
// If web notifications are granted, use it.
var notification = null;
if (Notification && (Notification.permission == "granted")) {
+ var text = n.text.split('®').join(''); // Clean up any HTML codes
if (n.nodeid) {
var node = getNodeFromId(n.nodeid);
- if (node) { notification = new Notification("{{{title}}} - " + node.name, { tag: n.tag, body: n.text, icon: '/images/notify/icons128-' + node.icon + '.png' }); }
+ if (node) { notification = new Notification("{{{title}}} - " + node.name, { tag: n.tag, body: text, icon: '/images/notify/icons128-' + node.icon + '.png' }); }
} else {
if (n.icon == null) { n.icon = 0; }
- notification = new Notification("{{{title}}} - " + n.title, { tag: n.tag, body: n.text, icon: '/images/notify/icons128-' + n.icon + '.png' });
+ notification = new Notification("{{{title}}} - " + n.title, { tag: n.tag, body: text, icon: '/images/notify/icons128-' + n.icon + '.png' });
}
notification.id = n.id;
notification.xtag = n.tag;
diff --git a/views/login-min.handlebars b/views/login-min.handlebars
index 3b655241..1fbcd7a3 100644
--- a/views/login-min.handlebars
+++ b/views/login-min.handlebars
@@ -1 +1 @@
- {{{title}}} - Login
{{{title}}}
{{{title2}}}
♦
Welcome
Connect to your home or office devices from anywhere in the world using MeshCentral, the real time, open source remote monitoring and management web site. You will need to download and install a management agent on your computers. Once installed, computers will show up in the "My Devices" section of this web site and you will be able to monitor them and take control of them.
X
\ No newline at end of file
+ {{{title}}} - Login
{{{title}}}
{{{title2}}}
♦
Welcome
Connect to your home or office devices from anywhere in the world using MeshCentral, the real time, open source remote monitoring and management web site. You will need to download and install a management agent on your computers. Once installed, computers will show up in the "My Devices" section of this web site and you will be able to monitor them and take control of them.
X
\ No newline at end of file
diff --git a/views/login.handlebars b/views/login.handlebars
index 846977e0..b88702cf 100644
--- a/views/login.handlebars
+++ b/views/login.handlebars
@@ -669,11 +669,10 @@
function center() {
/* Now we use CSS media to achive the same effect as deleted JS */
-
if (webPageFullScreen == false) {
QS('centralTable')['margin-top'] = '';
} else {
- var h = (Q('column_l').clientHeight / 2) - 250;
+ var h = ((Q('column_l').clientHeight) / 2) - 220;
if (h < 0) h = 0;
QS('centralTable')['margin-top'] = h + 'px';
}
diff --git a/views/messenger-min.handlebars b/views/messenger-min.handlebars
index c0b87922..90b8f8bf 100644
--- a/views/messenger-min.handlebars
+++ b/views/messenger-min.handlebars
@@ -1 +1 @@
- MeshMessenger
MeshMessenger
Remote
Local
\ No newline at end of file
+ MeshMessenger
MeshMessenger
Remote
Local
\ No newline at end of file
diff --git a/webserver.js b/webserver.js
index aa8c28e6..aec662f9 100644
--- a/webserver.js
+++ b/webserver.js
@@ -299,6 +299,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
if (user == null) {
// Create a new user
var user = { type: 'user', _id: userid, name: username, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000), domain: domain.id };
+ if (domain.newaccountsrights) { user.siteadmin = domain.newaccountsrights; }
var usercount = 0;
for (var i in obj.users) { if (obj.users[i].domain == domain.id) { usercount++; } }
if (usercount == 0) { user.siteadmin = 0xFFFFFFFF; /*if (domain.newaccounts === 2) { delete domain.newaccounts; }*/ } // If this is the first user, give the account site admin.
@@ -350,6 +351,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
if (user == null) {
// This user does not exist, create a new account.
var user = { type: 'user', _id: userid, name: shortname, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000), domain: domain.id };
+ if (domain.newaccountsrights) { user.siteadmin = domain.newaccountsrights; }
var usercount = 0;
for (var i in obj.users) { if (obj.users[i].domain == domain.id) { usercount++; } }
if (usercount == 0) { user.siteadmin = 0xFFFFFFFF; /*if (domain.newaccounts === 2) { delete domain.newaccounts; }*/ } // If this is the first user, give the account site admin.
@@ -835,6 +837,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
req.session.error = 'Username already exists.';
} else {
var user = { type: 'user', _id: 'user/' + domain.id + '/' + req.body.username.toLowerCase(), name: req.body.username, email: req.body.email, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000), domain: domain.id };
+ if (domain.newaccountsrights) { user.siteadmin = domain.newaccountsrights; }
if ((domain.passwordrequirements != null) && (domain.passwordrequirements.hint === true) && (req.body.apasswordhint)) { var hint = req.body.apasswordhint; if (hint.length > 250) { hint = hint.substring(0, 250); } user.passhint = hint; }
if (domainUserCount == 0) { user.siteadmin = 0xFFFFFFFF; /*if (domain.newaccounts === 2) { delete domain.newaccounts; }*/ } // If this is the first user, give the account site admin.
obj.users[user._id] = user;
@@ -1265,6 +1268,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
if ((user == null) || (user.sid != req.session.usersid)) {
// Create the domain user
var usercount = 0, user2 = { type: 'user', _id: req.session.userid, name: req.connection.user, domain: domain.id, sid: req.session.usersid, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000) };
+ if (domain.newaccountsrights) { user2.siteadmin = domain.newaccountsrights; }
for (var i in obj.users) { if (obj.users[i].domain == domain.id) { usercount++; } }
if (usercount == 0) { user2.siteadmin = 0xFFFFFFFF; } // If this is the first user, give the account site admin.
obj.users[req.session.userid] = user2;