Factorize siteadmin svrupdate perm check

Noah Zalev committed Aug 6, 2021 at 23:37 UTC 72cd6e307c18de416ff894a1a63ab36b15a812ec
1 file changed +7 -6
meshuser.js
+7 -6
@@ -5615,9 +5615,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5615 function serverCommandPrint(command) { console.log(command.value); }
5616
5617 function serverCommandServerClearErrorLog(command) {
5618 - // Clear the server error log
5619 - if ((user.siteadmin & 16) == 0) return;
5620 - fs.unlink(parent.parent.getConfigFilePath('mesherrors.txt'), function (err) { });
5618 + // Clear the server error log if user has site update permissions
5619 + if (userHasSiteUpdate()) { fs.unlink(parent.parent.getConfigFilePath('mesherrors.txt'), function (err) { }); }
5620 }
5621
5622 function serverCommandServerConsole(command) {
@@ -5645,7 +5644,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5644
5645 function serverCommandServerErrors(command) {
5646 // Load the server error log
5648 - if ((user.siteadmin & 16) == 0) return;
5647 + if (!userHasSiteUpdate()) return;
5648 if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.errorlog !== true))) return;
5649 fs.readFile(parent.parent.getConfigFilePath('mesherrors.txt'), 'utf8', function (err, data) { try { ws.send(JSON.stringify({ action: 'servererrors', data: data })); } catch (ex) { } });
5650 }
@@ -5670,7 +5669,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5669 if (req.session.loginToken != null) return;
5670
5671 // Perform server update
5673 - if ((user.siteadmin & 16) == 0) return;
5672 + if (!userHasSiteUpdate()) return;
5673 if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return;
5674 if ((command.version != null) && (typeof command.version != 'string')) return;
5675 parent.parent.performServerUpdate(command.version);
@@ -5681,7 +5680,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5680 if (req.session.loginToken != null) return;
5681
5682 // Check the server version
5684 - if ((user.siteadmin & 16) == 0) return;
5683 + if (!userHasSiteUpdate()) return;
5684 if ((domain.myserver === false) || ((domain.myserver != null) && (domain.myserver !== true) && (domain.myserver.upgrade !== true))) return;
5685 parent.parent.getServerTags(function (tags, err) { try { ws.send(JSON.stringify({ action: 'serverversion', tags: tags })); } catch (ex) { } });
5686 }
@@ -6287,6 +6286,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
6286 return extraids;
6287 }
6288
6289 + function userHasSiteUpdate() { return ((user.siteadmin & SITERIGHT_SERVERUPDATE) > 0); }
6290 +
6291 function csvClean(s) { return '\"' + s.split('\"').join('').split(',').join('').split('\r').join('').split('\n').join('') + '\"'; }
6292
6293 // Return detailed information about an array of nodeid's