users() optimized results if lack of permissions
This commit is contained in:
+8
-4
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user