From 72cd6e307c18de416ff894a1a63ab36b15a812ec Mon Sep 17 00:00:00 2001 From: Noah Zalev Date: Fri, 6 Aug 2021 23:37:33 -0400 Subject: [PATCH 1/3] Factorize siteadmin svrupdate perm check --- meshuser.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/meshuser.js b/meshuser.js index 4fb2550a..7c9b2259 100644 --- a/meshuser.js +++ b/meshuser.js @@ -5615,9 +5615,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use function serverCommandPrint(command) { console.log(command.value); } function serverCommandServerClearErrorLog(command) { - // Clear the server error log - if ((user.siteadmin & 16) == 0) return; - fs.unlink(parent.parent.getConfigFilePath('mesherrors.txt'), function (err) { }); + // Clear the server error log if user has site update permissions + if (userHasSiteUpdate()) { fs.unlink(parent.parent.getConfigFilePath('mesherrors.txt'), function (err) { }); } } function serverCommandServerConsole(command) { @@ -5645,7 +5644,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use function serverCommandServerErrors(command) { // Load the server error log - if ((user.siteadmin & 16) == 0) return; + if (!userHasSiteUpdate()) return; if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))) return; fs.readFile(parent.parent.getConfigFilePath('mesherrors.txt'), 'utf8', function (err, data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } }); } @@ -5670,7 +5669,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (req.session.loginToken != null) return; // Perform server update - if ((user.siteadmin & 16) == 0) return; + if (!userHasSiteUpdate()) return; if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return; if ((command.version != null) && (typeof command.version != 'string')) return; parent.parent.performServerUpdate(command.version); @@ -5681,7 +5680,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (req.session.loginToken != null) return; // Check the server version - if ((user.siteadmin & 16) == 0) return; + if (!userHasSiteUpdate()) return; if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return; parent.parent.getServerTags(function (tags, err) { try { ws.send(JSON.stringify({ action: 'serverversion', tags: tags })); } catch (ex) { } }); } @@ -6287,6 +6286,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use return extraids; } + function userHasSiteUpdate() { return ((user.siteadmin & SITERIGHT_SERVERUPDATE) > 0); } + function csvClean(s) { return '\"' + s.split('\"').join('').split(',').join('').split('\r').join('').split('\n').join('') + '\"'; } // Return detailed information about an array of nodeid's From 27a458930605ffadba513060e14628bd9d9c3478 Mon Sep 17 00:00:00 2001 From: Noah Zalev Date: Sat, 7 Aug 2021 00:10:19 -0400 Subject: [PATCH 2/3] Factorize myserver errorlog check --- meshuser.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meshuser.js b/meshuser.js index 7c9b2259..6277e134 100644 --- a/meshuser.js +++ b/meshuser.js @@ -5643,10 +5643,10 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } function serverCommandServerErrors(command) { - // Load the server error log - if (!userHasSiteUpdate()) return; - if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))) return; + // Load the server error log + if (userHasSiteUpdate() && domainHasMyServerErrorLog()) { fs.readFile(parent.parent.getConfigFilePath('mesherrors.txt'), 'utf8', function (err, data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } }); + } } function serverCommandServerStats(command) { @@ -6287,6 +6287,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } function userHasSiteUpdate() { return ((user.siteadmin & SITERIGHT_SERVERUPDATE) > 0); } + function domainHasMyServerErrorLog() { return !((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))) } function csvClean(s) { return '\"' + s.split('\"').join('').split(',').join('').split('\r').join('').split('\n').join('') + '\"'; } From ccb9094217e4f972266ef13421e4ab83c2bcffc8 Mon Sep 17 00:00:00 2001 From: Noah Zalev Date: Sat, 7 Aug 2021 00:20:48 -0400 Subject: [PATCH 3/3] Factorize myserver upgrade check --- meshuser.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/meshuser.js b/meshuser.js index 6277e134..58d6c016 100644 --- a/meshuser.js +++ b/meshuser.js @@ -5644,9 +5644,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use function serverCommandServerErrors(command) { // Load the server error log - if (userHasSiteUpdate() && domainHasMyServerErrorLog()) { + if (userHasSiteUpdate() && domainHasMyServerErrorLog()) fs.readFile(parent.parent.getConfigFilePath('mesherrors.txt'), 'utf8', function (err, data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } }); - } } function serverCommandServerStats(command) { @@ -5669,10 +5668,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (req.session.loginToken != null) return; // Perform server update - if (!userHasSiteUpdate()) return; - if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return; - if ((command.version != null) && (typeof command.version != 'string')) return; - parent.parent.performServerUpdate(command.version); + if (userHasSiteUpdate() && domainHasMyServerUpgrade() && !((command.version != null) && (typeof command.version != 'string'))) + parent.parent.performServerUpdate(command.version); } function serverCommandServerVersion(command) { @@ -5680,9 +5677,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (req.session.loginToken != null) return; // Check the server version - if (!userHasSiteUpdate()) return; - if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return; - parent.parent.getServerTags(function (tags, err) { try { ws.send(JSON.stringify({ action: 'serverversion', tags: tags })); } catch (ex) { } }); + if (userHasSiteUpdate() && domainHasMyServerUpgrade()) + parent.parent.getServerTags(function (tags, err) { try { ws.send(JSON.stringify({ action: 'serverversion', tags: tags })); } catch (ex) { } }); } function serverCommandUsers(command) { @@ -6287,7 +6283,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } function userHasSiteUpdate() { return ((user.siteadmin & SITERIGHT_SERVERUPDATE) > 0); } - function domainHasMyServerErrorLog() { return !((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))) } + function domainHasMyServerErrorLog() { return !((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))); } + function domainHasMyServerUpgrade() { return !((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))); } function csvClean(s) { return '\"' + s.split('\"').join('').split(',').join('').split('\r').join('').split('\n').join('') + '\"'; }