mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
closes #1229
This commit is contained in:
@@ -41,11 +41,10 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) {
|
||||
.html('<a href="javascript:app.openChat(\'' +
|
||||
userObj.username +
|
||||
'\', ' + userObj.uid +
|
||||
');"><img src="' +
|
||||
userObj.picture +
|
||||
'" title="' +
|
||||
userObj.username +
|
||||
'" />' + userObj.username + '</a>')
|
||||
');">'+
|
||||
'<i class="fa fa-circle status ' + userObj.status + '"></i> ' +
|
||||
'<img src="' + userObj.picture + '" title="' + userObj.username +'" />' +
|
||||
userObj.username + '</a>')
|
||||
.appendTo(chatsListEl);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -131,7 +131,15 @@ var db = require('./database'),
|
||||
return !!user.uid;
|
||||
});
|
||||
|
||||
callback(null, users);
|
||||
async.map(users, function(userData, next) {
|
||||
user.isOnline(userData.uid, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
userData.status = data.status;
|
||||
next(null, userData);
|
||||
});
|
||||
}, callback);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@@ -48,32 +48,7 @@ SocketUser.reset.commit = function(socket, data, callback) {
|
||||
};
|
||||
|
||||
SocketUser.isOnline = function(socket, uid, callback) {
|
||||
user.getUserField(uid, 'status', function(err, status) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if(!status) {
|
||||
status = 'online';
|
||||
}
|
||||
|
||||
var online = module.parent.exports.isUserOnline(uid);
|
||||
|
||||
if(!online) {
|
||||
status = 'offline';
|
||||
}
|
||||
|
||||
if(status === 'offline') {
|
||||
online = false;
|
||||
}
|
||||
|
||||
callback(null, {
|
||||
online: online,
|
||||
uid: uid,
|
||||
timestamp: Date.now(),
|
||||
status: status
|
||||
});
|
||||
});
|
||||
user.isOnline(uid, callback);
|
||||
};
|
||||
|
||||
SocketUser.changePassword = function(socket, data, callback) {
|
||||
|
||||
23
src/user.js
23
src/user.js
@@ -429,5 +429,28 @@ var bcrypt = require('bcryptjs'),
|
||||
groups.isMemberByGroupName(uid, 'administrators', callback);
|
||||
};
|
||||
|
||||
User.isOnline = function(uid, callback) {
|
||||
User.getUserField(uid, 'status', function(err, status) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var online = require('./socket.io').isUserOnline(uid);
|
||||
|
||||
status = online ? (status || 'online') : 'offline';
|
||||
|
||||
if(status === 'offline') {
|
||||
online = false;
|
||||
}
|
||||
|
||||
callback(null, {
|
||||
online: online,
|
||||
uid: uid,
|
||||
timestamp: Date.now(),
|
||||
status: status
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
}(exports));
|
||||
|
||||
Reference in New Issue
Block a user