Fix for #3066

Ylian Saint-Hilaire committed Aug 26, 2021 at 22:04 UTC 9ab6fb5a3951ad7c78b56113be48186b23faba08
4 files changed +9 -7
meshdesktopmultiplex.js
+3 -3
@@ -131,7 +131,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
131
132 // Check session recording
133 var startRecord = false;
134 - if ((domain.sessionrecording.onlyselectedusers === true) && (peer.user != null) && (peer.user.flags != null) && ((peer.user.flags & 2) != 0)) { startRecord = true; }
134 + if ((typeof domain.sessionrecording == 'object') && (domain.sessionrecording.onlyselectedusers === true) && (peer.user != null) && (peer.user.flags != null) && ((peer.user.flags & 2) != 0)) { startRecord = true; }
135 startRecording(domain, startRecord, function () {
136 // Indicated we are connected
137 obj.sendToViewer(peer, obj.recordingFile ? 'cr' : 'c');
@@ -768,11 +768,11 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
768 var record = false;
769
770 // Setup session recording
771 - if ((domain.sessionrecording == true || ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.protocols == null) || (domain.sessionrecording.protocols.indexOf(2) >= 0))))) {
771 + if (((domain.sessionrecording == true) || ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.protocols == null) || (domain.sessionrecording.protocols.indexOf(2) >= 0))))) {
772 record = true;
773
774 // Check again to make sure we need to start recording
775 - if ((domain.sessionrecording.onlyselecteddevicegroups === true) || (domain.sessionrecording.onlyselectedusers === true)) {
775 + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselecteddevicegroups === true) || (domain.sessionrecording.onlyselectedusers === true))) {
776 record = false;
777
778 // Check device group recording
meshrelay.js
+1 -1
@@ -357,7 +357,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) {
357 if ((nodes != null) && (nodes.length == 1)) { node = nodes[0]; xdevicename2 = node.name; xdevicename = '-' + parent.common.makeFilename(node.name); }
358
359 // Check again if we need to do messenger recording
360 - if ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true)) {
360 + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true))) {
361 record = false;
362
363 // Check if this device group needs to be recorded
meshuser.js
+4 -2
@@ -492,8 +492,10 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
492 serverinfo.languages = parent.renderLanguages;
493 serverinfo.tlshash = Buffer.from(parent.webCertificateFullHashs[domain.id], 'binary').toString('hex').toUpperCase(); // SHA384 of server HTTPS certificate
494 serverinfo.agentCertHash = parent.agentCertificateHashBase64;
495 - if ((domain.sessionrecording) && (domain.sessionrecording.onlyselectedusers === true)) { serverinfo.usersSessionRecording = 1; } // Allow enabling of session recording for user groups
496 - if ((domain.sessionrecording) && (domain.sessionrecording.onlyselecteddevicegroups === true)) { serverinfo.devGroupSessionRecording = 1; } // Allow enabling of session recording for device groups
495 + if (typeof domain.sessionrecording == 'object') {
496 + if (domain.sessionrecording.onlyselectedusers === true) { serverinfo.usersSessionRecording = 1; } // Allow enabling of session recording for user groups
497 + if (domain.sessionrecording.onlyselecteddevicegroups === true) { serverinfo.devGroupSessionRecording = 1; } // Allow enabling of session recording for device groups
498 + }
499 if ((parent.parent.config.domains[domain.id].amtacmactivation != null) && (parent.parent.config.domains[domain.id].amtacmactivation.acmmatch != null)) {
500 var matchingDomains = [];
501 for (var i in parent.parent.config.domains[domain.id].amtacmactivation.acmmatch) {
webserver.js
+1 -1
@@ -3945,7 +3945,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3945 var record = true;
3946
3947 // Check user or device group recording
3948 - if ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true)) {
3948 + if ((typeof domain.sessionrecording == 'object') && ((domain.sessionrecording.onlyselectedusers === true) || (domain.sessionrecording.onlyselecteddevicegroups === true))) {
3949 record = false;
3950
3951 // Check device group recording