mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 09:20:32 +01:00
small optimization to online users
This commit is contained in:
@@ -13,8 +13,8 @@ usersController.getOnlineUsers = function(req, res, next) {
|
|||||||
if(err) {
|
if(err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
var onlineUsers = [],
|
|
||||||
uid = req.user ? req.user.uid : 0;
|
var uid = req.user ? req.user.uid : 0;
|
||||||
|
|
||||||
user.isAdministrator(uid, function (err, isAdministrator) {
|
user.isAdministrator(uid, function (err, isAdministrator) {
|
||||||
if(err) {
|
if(err) {
|
||||||
@@ -27,39 +27,22 @@ usersController.getOnlineUsers = function(req, res, next) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateUserOnlineStatus(user, next) {
|
|
||||||
var online = websockets.isUserOnline(user.uid);
|
|
||||||
if (!online) {
|
|
||||||
db.sortedSetRemove('users:online', user.uid);
|
|
||||||
return next();
|
|
||||||
}
|
|
||||||
|
|
||||||
onlineUsers.push(user);
|
|
||||||
next();
|
|
||||||
}
|
|
||||||
|
|
||||||
var anonymousUserCount = websockets.getOnlineAnonCount();
|
var anonymousUserCount = websockets.getOnlineAnonCount();
|
||||||
|
|
||||||
async.each(users, updateUserOnlineStatus, function(err) {
|
db.sortedSetCard('users:online', function(err, count) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
db.sortedSetCard('users:online', function(err, count) {
|
var userData = {
|
||||||
if (err) {
|
search_display: 'none',
|
||||||
return next(err);
|
loadmore_display: count > 50 ? 'block' : 'hide',
|
||||||
}
|
users: users,
|
||||||
|
anonymousUserCount: anonymousUserCount,
|
||||||
|
show_anon: anonymousUserCount?'':'hide'
|
||||||
|
};
|
||||||
|
|
||||||
var userData = {
|
res.render('users', userData);
|
||||||
search_display: 'none',
|
|
||||||
loadmore_display: count > 50 ? 'block' : 'hide',
|
|
||||||
users: onlineUsers,
|
|
||||||
anonymousUserCount: anonymousUserCount,
|
|
||||||
show_anon: anonymousUserCount?'':'hide'
|
|
||||||
};
|
|
||||||
|
|
||||||
res.render('users', userData);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -236,8 +236,10 @@ Sockets.getUserSockets = function(uid) {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uid = parseInt(uid, 10);
|
||||||
|
|
||||||
sockets = sockets.filter(function(s) {
|
sockets = sockets.filter(function(s) {
|
||||||
return s.uid === parseInt(uid, 10);
|
return s.uid === uid;
|
||||||
});
|
});
|
||||||
|
|
||||||
return sockets;
|
return sockets;
|
||||||
|
|||||||
Reference in New Issue
Block a user