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