mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-01-11 15:03:20 -05:00
Added support for locking user desktop on Windows.
This commit is contained in:
parent
84b9d3df09
commit
3a92c077b9
@ -1610,7 +1610,7 @@ function onTunnelClosed() {
|
|||||||
function onTunnelSendOk() { /*sendConsoleText("Tunnel #" + this.index + " SendOK.", this.sessionid);*/ }
|
function onTunnelSendOk() { /*sendConsoleText("Tunnel #" + this.index + " SendOK.", this.sessionid);*/ }
|
||||||
function onTunnelData(data) {
|
function onTunnelData(data) {
|
||||||
//console.log("OnTunnelData");
|
//console.log("OnTunnelData");
|
||||||
//sendConsoleText('OnTunnelData, ' + data.length + ', ' + typeof data + ', ' + data);
|
sendConsoleText('OnTunnelData, ' + data.length + ', ' + typeof data + ', ' + data);
|
||||||
|
|
||||||
// If this is upload data, save it to file
|
// If this is upload data, save it to file
|
||||||
if ((this.httprequest.uploadFile) && (typeof data == 'object') && (data[0] != 123)) {
|
if ((this.httprequest.uploadFile) && (typeof data == 'object') && (data[0] != 123)) {
|
||||||
@ -2547,30 +2547,25 @@ function onTunnelControlData(data, ws) {
|
|||||||
if (ws == null) { ws = this; }
|
if (ws == null) { ws = this; }
|
||||||
if (typeof data == 'string') { try { obj = JSON.parse(data); } catch (e) { sendConsoleText('Invalid control JSON: ' + data); return; } }
|
if (typeof data == 'string') { try { obj = JSON.parse(data); } catch (e) { sendConsoleText('Invalid control JSON: ' + data); return; } }
|
||||||
else if (typeof data == 'object') { obj = data; } else { return; }
|
else if (typeof data == 'object') { obj = data; } else { return; }
|
||||||
//sendConsoleText('onTunnelControlData(' + ws.httprequest.protocol + '): ' + JSON.stringify(data));
|
sendConsoleText('onTunnelControlData(' + ws.httprequest.protocol + '): ' + JSON.stringify(data));
|
||||||
//console.log('onTunnelControlData: ' + JSON.stringify(data));
|
//console.log('onTunnelControlData: ' + JSON.stringify(data));
|
||||||
|
|
||||||
if (obj.action) {
|
switch (obj.type) {
|
||||||
switch (obj.action) {
|
|
||||||
case 'lock': {
|
case 'lock': {
|
||||||
|
// Look for a TSID
|
||||||
|
var tsid = null;
|
||||||
|
if ((ws.httprequest.xoptions != null) && (typeof ws.httprequest.xoptions.tsid == 'number')) { tsid = ws.httprequest.xoptions.tsid; }
|
||||||
|
|
||||||
// Lock the current user out of the desktop
|
// Lock the current user out of the desktop
|
||||||
try {
|
try {
|
||||||
if (process.platform == 'win32') {
|
if (process.platform == 'win32') {
|
||||||
MeshServerLogEx(53, null, "Locking remote user out of desktop", ws.httprequest);
|
MeshServerLogEx(53, null, "Locking remote user out of desktop", ws.httprequest);
|
||||||
var child = require('child_process');
|
var child = require('child_process');
|
||||||
child.execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'RunDll32.exe user32.dll,LockWorkStation'], { type: 1 });
|
child.execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'RunDll32.exe user32.dll,LockWorkStation'], { type: 1, uid: tsid });
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
// Unknown action, ignore it.
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (obj.type) {
|
|
||||||
case 'options': {
|
case 'options': {
|
||||||
// These are additional connection options passed in the control channel.
|
// These are additional connection options passed in the control channel.
|
||||||
//sendConsoleText('options: ' + JSON.stringify(obj));
|
//sendConsoleText('options: ' + JSON.stringify(obj));
|
||||||
|
@ -6762,9 +6762,9 @@
|
|||||||
meshserver.send({ action: 'toast', nodeids: [ currentNode._id ], title: decodeURIComponent('{{{extitle}}}'), msg: Q('d2devToast').value });
|
meshserver.send({ action: 'toast', nodeids: [ currentNode._id ], title: decodeURIComponent('{{{extitle}}}'), msg: Q('d2devToast').value });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lock desktop
|
||||||
function deviceLockFunction() {
|
function deviceLockFunction() {
|
||||||
if (xxdialogMode) return;
|
if ((xxdialogMode == null) && (desktop != null) && (desktop.contype == 1)) { setDialogMode(2, "Lock Desktop", 3, function() { if ((desktop != null) && (desktop.contype == 1)) { desktop.sendCtrlMsg('{"ctrlChannel":"102938","type":"lock"}'); } }, "Lock user desktop?"); }
|
||||||
if ((desktop != null) && (desktop.contype == 1)) { desktop.sendCtrlMsg('{"action":"lock"}'); } // Lock desktop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showShareDevice() {
|
function showShareDevice() {
|
||||||
@ -7465,8 +7465,7 @@
|
|||||||
QV('DeskRecordButton', (deskState == 3) && (Q('Desk')['toBlob'] != null) && (desktop.m.StartRecording != null));
|
QV('DeskRecordButton', (deskState == 3) && (Q('Desk')['toBlob'] != null) && (desktop.m.StartRecording != null));
|
||||||
QV('DeskChatButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
|
QV('DeskChatButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
|
||||||
QV('DeskNotifyButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (currentNode.agent) && online);
|
QV('DeskNotifyButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (currentNode.agent) && online);
|
||||||
//QV('DeskLockButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (currentNode.agent) && (deskState == 3));
|
QV('DeskLockButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (currentNode.agent) && (deskState == 3));
|
||||||
QV('DeskLockButton', false); // TODO: Work on adding remote desktop lock feature.
|
|
||||||
QV('DeskToolsButton', (deskState == 3) && (currentNode.agent) && online);
|
QV('DeskToolsButton', (deskState == 3) && (currentNode.agent) && online);
|
||||||
QE('DeskToolsButton', inputAllowed);
|
QE('DeskToolsButton', inputAllowed);
|
||||||
QV('DeskOpenWebButton', (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
|
QV('DeskOpenWebButton', (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
|
||||||
|
Loading…
Reference in New Issue
Block a user