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

View File

@ -100,6 +100,7 @@ Other changes
| Version | Date | Comment | | 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.1 | 2018-07-03 | `versions()` bugfix git version macOS |
| 3.42.0 | 2018-06-01 | `processes()` added parent process PID | | 3.42.0 | 2018-06-01 | `processes()` added parent process PID |
| 3.41.4 | 2018-05-28 | windows exec WMIC in try catch | | 3.41.4 | 2018-05-28 | windows exec WMIC in try catch |

View File

@ -31,7 +31,7 @@ const opts = {
// -------------------------- // --------------------------
// array of users online = sessions // array of users online = sessions
function parseUsersLinux(lines) { function parseUsersLinux(lines, phase) {
let result = []; let result = [];
let result_who = []; let result_who = [];
let result_w = {}; 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) { function parseUsersDarwin(lines) {
@ -189,13 +193,13 @@ function users(callback) {
if (!error) { if (!error) {
// lines / split // lines / split
let lines = stdout.toString().split('\n'); let lines = stdout.toString().split('\n');
result = parseUsersLinux(lines); result = parseUsersLinux(lines, 1);
if (result.length === 0) { if (result.length === 0) {
exec('who; echo "---"; w | tail -n +2', function (error, stdout) { exec('who; echo "---"; w | tail -n +2', function (error, stdout) {
if (!error) { if (!error) {
// lines / split // lines / split
lines = stdout.toString().split('\n'); lines = stdout.toString().split('\n');
result = parseUsersLinux(lines); result = parseUsersLinux(lines, 2);
} }
if (callback) { callback(result); } if (callback) { callback(result); }
resolve(result); resolve(result);