From 183f27b167bcb875029757200a4e56706689eee1 Mon Sep 17 00:00:00 2001 From: ferncoder Date: Thu, 6 Feb 2014 19:35:58 +0100 Subject: [PATCH 1/2] (issue #929) Admin users can now see offline users https://github.com/designcreateplay/NodeBB/issues/929 --- src/routes/user.js | 49 ++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/src/routes/user.js b/src/routes/user.js index b6574d245c..1b4175afd9 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -494,35 +494,38 @@ var fs = require('fs'), var websockets = require('../socket.io'); user.getUsers('users:online', 0, 49, function (err, data) { - var onlineUsers = []; - data = data.filter(function(item) { - return item.status !== 'offline'; - }); + user.isAdministrator(req.user.uid, function (err, isAdministrator) { + if (true != isAdministrator) { + data = data.filter(function(item) { + return item.status !== 'offline'; + }); + } - function iterator(userData, next) { - var online = websockets.isUserOnline(userData.uid); - if(!online) { - db.sortedSetRemove('users:online', userData.uid); - return next(null); - } + function iterator(userData, next) { + var online = websockets.isUserOnline(userData.uid); + if(!online) { + db.sortedSetRemove('users:online', userData.uid); + return next(null); + } - onlineUsers.push(userData); - next(null); - } + onlineUsers.push(userData); + next(null); + } - var anonymousUserCount = websockets.getOnlineAnonCount(); + var anonymousUserCount = websockets.getOnlineAnonCount(); - async.each(data, iterator, function(err) { - res.json({ - search_display: 'none', - loadmore_display: 'block', - users: onlineUsers, - anonymousUserCount: anonymousUserCount, - show_anon: anonymousUserCount?'':'hide' - }); - }); + async.each(data, iterator, function(err) { + res.json({ + search_display: 'none', + loadmore_display: 'block', + users: onlineUsers, + anonymousUserCount: anonymousUserCount, + show_anon: anonymousUserCount?'':'hide' + }); + }); + }); }); } From 9fede2cb059460f751d5863cfa0a71fe04ae9cc6 Mon Sep 17 00:00:00 2001 From: ferncoder Date: Thu, 6 Feb 2014 21:12:12 +0100 Subject: [PATCH 2/2] (issue #929) Admin users can now see offline users Add the check of the req.user to allow anonymous user to watch de /user pages --- src/routes/user.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/routes/user.js b/src/routes/user.js index 1b4175afd9..25f39e03f2 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -496,7 +496,11 @@ var fs = require('fs'), user.getUsers('users:online', 0, 49, function (err, data) { var onlineUsers = []; - user.isAdministrator(req.user.uid, function (err, isAdministrator) { + uid = 0; + if (req.user) { + uid = req.user.uid; + } + user.isAdministrator(uid, function (err, isAdministrator) { if (true != isAdministrator) { data = data.filter(function(item) { return item.status !== 'offline';