Factor out node id and domain validation

Noah Zalev committed Jul 13, 2021 at 17:51 UTC 34aab9c10a2396f6c2344cc54683356739bc0616
1 file changed +8 -7
meshuser.js
+8 -7
@@ -5532,10 +5532,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5532 };
5533
5534 function serverCommandGetNetworkInfo(command) {
5535 - // Argument validation
5536 - if (common.validateString(command.nodeid, 1, 1024) == false) return; // Check nodeid
5537 - if (command.nodeid.indexOf('/') == -1) { command.nodeid = 'node/' + domain.id + '/' + command.nodeid; }
5538 - if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain
5535 + if (!validNodeIdAndDomain(command)) return;
5536
5537 // Get the node and the rights for this node
5538 parent.GetNodeWithRights(domain, user, command.nodeid, function (node, rights, visible) {
@@ -5560,9 +5557,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5557 }
5558
5559 function serverCommandLastConnect(command) {
5563 - if (common.validateString(command.nodeid, 1, 1024) == false) return; // Check the nodeid
5564 - if (command.nodeid.indexOf('/') == -1) { command.nodeid = 'node/' + domain.id + '/' + command.nodeid; }
5565 - if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return; // Invalid domain, operation only valid for current domain
5560 + if (!validNodeIdAndDomain(command)) return;
5561
5562 // Get the node and the rights for this node
5563 parent.GetNodeWithRights(domain, user, command.nodeid, function (node, rights, visible) {
@@ -6154,6 +6149,12 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
6149 }
6150
6151
6152 + function validNodeIdAndDomain(command) {
6153 + if (common.validateString(command.nodeid, 1, 1024) == false) return false; // Check nodeid
6154 + if (command.nodeid.indexOf('/') == -1) { command.nodeid = 'node/' + domain.id + '/' + command.nodeid; }
6155 + if ((command.nodeid.split('/').length != 3) || (command.nodeid.split('/')[1] != domain.id)) return false; // Invalid domain, operation only valid for current domain
6156 + return true;
6157 + }
6158
6159 function csvClean(s) { return '\"' + s.split('\"').join('').split(',').join('').split('\r').join('').split('\n').join('') + '\"'; }
6160