From 9ab6fb5a3951ad7c78b56113be48186b23faba08 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 26 Aug 2021 22:04:17 -0700 Subject: [PATCH] Fix for #3066 --- meshdesktopmultiplex.js | 6 +++--- meshrelay.js | 2 +- meshuser.js | 6 ++++-- webserver.js | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/meshdesktopmultiplex.js b/meshdesktopmultiplex.js index 020dd286..b8afe1be 100644 --- a/meshdesktopmultiplex.js +++ b/meshdesktopmultiplex.js @@ -131,7 +131,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) { // Check session recording var startRecord = false; - if ((domain.sessionrecording.onlyselectedusers === true) && (peer.user != null) && (peer.user.flags != null) && ((peer.user.flags & 2) != 0)) { startRecord = true; } + if ((typeof domain.sessionrecording == 'object') && (domain.sessionrecording.onlyselectedusers === true) && (peer.user != null) && (peer.user.flags != null) && ((peer.user.flags & 2) != 0)) { startRecord = true; } startRecording(domain, startRecord, function () { // Indicated we are connected obj.sendToViewer(peer, obj.recordingFile ? 'cr' : 'c'); @@ -768,11 +768,11 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) { var record = false; // Setup session recording - if ((domain.sessionrecording == true || ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.protocols == null) || (domain.sessionrecording.protocols.indexOf(2) >= 0))))) { + if (((domain.sessionrecording == true) || ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.protocols == null) || (domain.sessionrecording.protocols.indexOf(2) >= 0))))) { record = true; // Check again to make sure we need to start recording - if ((domain.sessionrecording.onlyselecteddevicegroups === true) || (domain.sessionrecording.onlyselectedusers === true)) { + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselecteddevicegroups === true) || (domain.sessionrecording.onlyselectedusers === true))) { record = false; // Check device group recording diff --git a/meshrelay.js b/meshrelay.js index 21affb31..54c36e7a 100644 --- a/meshrelay.js +++ b/meshrelay.js @@ -357,7 +357,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) { if ((nodes != null) && (nodes.length == 1)) { node = nodes[0]; xdevicename2 = node.name; xdevicename = '-' + parent.common.makeFilename(node.name); } // Check again if we need to do messenger recording - if ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true)) { + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true))) { record = false; // Check if this device group needs to be recorded diff --git a/meshuser.js b/meshuser.js index eac7d0ea..a98e1217 100644 --- a/meshuser.js +++ b/meshuser.js @@ -492,8 +492,10 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use serverinfo.languages = parent.renderLanguages; serverinfo.tlshash = Buffer.from(parent.webCertificateFullHashs[domain.id], 'binary').toString('hex').toUpperCase(); // SHA384 of server HTTPS certificate serverinfo.agentCertHash = parent.agentCertificateHashBase64; - if ((domain.sessionrecording) && (domain.sessionrecording.onlyselectedusers === true)) { serverinfo.usersSessionRecording = 1; } // Allow enabling of session recording for user groups - if ((domain.sessionrecording) && (domain.sessionrecording.onlyselecteddevicegroups === true)) { serverinfo.devGroupSessionRecording = 1; } // Allow enabling of session recording for device groups + if (typeof domain.sessionrecording == 'object') { + if (domain.sessionrecording.onlyselectedusers === true) { serverinfo.usersSessionRecording = 1; } // Allow enabling of session recording for user groups + if (domain.sessionrecording.onlyselecteddevicegroups === true) { serverinfo.devGroupSessionRecording = 1; } // Allow enabling of session recording for device groups + } if ((parent.parent.config.domains[domain.id].amtacmactivation != null) && (parent.parent.config.domains[domain.id].amtacmactivation.acmmatch != null)) { var matchingDomains = []; for (var i in parent.parent.config.domains[domain.id].amtacmactivation.acmmatch) { diff --git a/webserver.js b/webserver.js index 89b38d3f..27297713 100644 --- a/webserver.js +++ b/webserver.js @@ -3945,7 +3945,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { var record = true; // Check user or device group recording - if ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true)) { + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true))) { record = false; // Check device group recording