1
0
Fork 0
mirror of https://github.com/Ylianst/MeshCentral.git synced 2025-03-09 15:40:18 +00:00

Added session termination feature except for desktop multiplexor.

This commit is contained in:
Ylian Saint-Hilaire 2021-10-19 11:47:39 -07:00
parent 587b591fe7
commit bd2e4f4d2b
3 changed files with 85 additions and 7 deletions

View file

@ -5660,6 +5660,29 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
break;
}
case 'endDesktopMultiplex': {
var err = null, xuser = null;
try {
if (command.xuserid.indexOf('/') < 0) { command.xuserid = 'user/' + domain.id + '/' + command.xuserid; }
if (common.validateString(command.nodeid, 1, 1024) == false) { err = 'Invalid device identifier'; } // Check the meshid
else if (command.nodeid.indexOf('/') == -1) { command.nodeid = 'node/' + domain.id + '/' + command.nodeid; }
const xusersplit = command.xuserid.split('/');
xuser = parent.users[command.xuserid];
if (xuser == null) { err = 'User does not exists'; }
else if ((obj.crossDomain !== true) && ((xusersplit.length != 3) || (xusersplit[1] != domain.id))) { err = 'Invalid domain'; } // Invalid domain, operation only valid for current domain
} catch (ex) { err = 'Validation exception: ' + ex; }
// Handle any errors
if (err != null) { if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'changeusernotify', responseid: command.responseid, result: err })); } catch (ex) { } } break; }
// Get the node and the rights for this node
parent.GetNodeWithRights(domain, xuser, command.nodeid, function (node, rights, visible) {
if ((rights != 0xFFFFFFFF) && (xuser._id != command.xuserid)) return;
//console.log('TODO');
});
break;
}
default: {
// Unknown user action
console.log('Unknown action from user ' + user.name + ': ' + command.action + '.');