Merge branch 'master' of github.com:designcreateplay/NodeBB

This commit is contained in:
Julian Lam
2013-07-24 18:54:47 -04:00
9 changed files with 91 additions and 40 deletions

View File

@@ -23,7 +23,8 @@ var user = require('./../user.js'),
Admin.create_routes = function(app) {
(function() {
var routes = ['categories', 'users', 'topics', 'settings', 'themes', 'twitter', 'facebook', 'gplus', 'redis', 'motd'];
var routes = ['categories', 'users', 'topics', 'settings', 'themes', 'twitter', 'facebook', 'gplus', 'redis', 'motd',
'users/latest', 'users/sort-posts', 'users/sort-reputation', 'users/search'];
for (var i=0, ii=routes.length; i<ii; i++) {
(function(route) {

View File

@@ -337,7 +337,9 @@ var utils = require('./../public/src/utils.js'),
function iterator(uid, callback) {
User.getUserData(uid, function(userData) {
data.push(userData);
if(userData) {
data.push(userData);
}
callback(null);
});
}

View File

@@ -47,7 +47,8 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
userSockets[uid] = userSockets[uid] || [];
userSockets[uid].push(socket);
if(uid)
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
socket.join('uid_' + uid);
});
});
@@ -61,8 +62,11 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
userSockets[uid].splice(index, 1);
}
if(userSockets[uid].length === 0)
if(userSockets[uid].length === 0) {
delete users[sessionID];
if(uid)
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
}
for(var roomName in rooms) {
@@ -215,12 +219,16 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
user.reset.commit(socket, data.code, data.password);
});
function isUserOnline(uid) {
return !!userSockets[uid] && userSockets[uid].length > 0;
}
socket.on('api:user.get_online_users', function(data) {
var returnData = [];
for(var i=0; i<data.length; ++i) {
var uid = data[i];
if(userSockets[uid] && userSockets[uid].length > 0)
if(isUserOnline(uid))
returnData.push(uid);
else
returnData.push(0);
@@ -228,6 +236,10 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
socket.emit('api:user.get_online_users', returnData);
});
socket.on('api:user.isOnline', function(uid) {
socket.emit('api:user.isOnline', isUserOnline(uid));
});
socket.on('api:user.changePassword', function(data) {
user.changePassword(socket, uid, data, function(success) {
if(success) {