diff --git a/CHANGELOG.md b/CHANGELOG.md index eb01f75..d448f6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ Other changes | Version | Date | Comment | | -------------- | -------------- | -------- | +| 3.42.2 | 2018-07-03 | `users()` optimized results if lack of permissions | | 3.42.1 | 2018-07-03 | `versions()` bugfix git version macOS | | 3.42.0 | 2018-06-01 | `processes()` added parent process PID | | 3.41.4 | 2018-05-28 | windows exec WMIC in try catch | diff --git a/lib/users.js b/lib/users.js index 43fabc8..55e31c4 100644 --- a/lib/users.js +++ b/lib/users.js @@ -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);