users() optimized results if lack of permissions

This commit is contained in:
Sebastian Hildebrandt
2018-07-03 23:17:47 +02:00
parent 99adfc7f2c
commit b06bbd643c
2 changed files with 9 additions and 4 deletions
+8 -4
View File
@@ -31,7 +31,7 @@ const opts = {
// --------------------------
// array of users online = sessions
function parseUsersLinux(lines) {
function parseUsersLinux(lines, phase) {
let result = [];
let result_who = [];
let result_w = {};
@@ -88,7 +88,11 @@ function parseUsersLinux(lines) {
}
}
});
return result;
if (result.length === 0 && phase === 2) {
return result_who;
} else {
return result;
}
}
function parseUsersDarwin(lines) {
@@ -189,13 +193,13 @@ function users(callback) {
if (!error) {
// lines / split
let lines = stdout.toString().split('\n');
result = parseUsersLinux(lines);
result = parseUsersLinux(lines, 1);
if (result.length === 0) {
exec('who; echo "---"; w | tail -n +2', function (error, stdout) {
if (!error) {
// lines / split
lines = stdout.toString().split('\n');
result = parseUsersLinux(lines);
result = parseUsersLinux(lines, 2);
}
if (callback) { callback(result); }
resolve(result);