Merge branch 'master' of github.com:psychobunny/node-forum

This commit is contained in:
Julian Lam
2013-06-26 13:38:10 -04:00
12 changed files with 217 additions and 73 deletions

View File

@@ -35,5 +35,25 @@ var RDB = require('./../redis.js'),
});
};
UserAdmin.deleteUser = function(uid, theirid, socket) {
user.isAdministrator(uid, function(amIAdmin) {
user.isAdministrator(theirid, function(areTheyAdmin){
if(amIAdmin && !areTheyAdmin) {
user.delete(theirid, function(data) {
socket.emit('event:alert', {
title: 'User Deleted',
message: 'This user is deleted!',
type: 'success',
timeout: 2000
});
});
}
});
});
};
}(exports));

View File

@@ -40,8 +40,33 @@ var user = require('./../user.js'),
case 'users' :
if (req.params.tab == 'search') {
res.json({search_display: 'block', users: []});
} else {
user.getUserList(function(data){
}
else if(req.params.tab == 'latest') {
user.getUserList(function(data) {
data = data.sort(function(a, b) {
return b.joindate - a.joindate;
});
res.json({search_display: 'none', users:data, yourid:req.user.uid});
});
}
else if(req.params.tab == 'sort-posts') {
user.getUserList(function(data) {
data = data.sort(function(a, b) {
return b.postcount - a.postcount;
});
res.json({search_display: 'none', users:data, yourid:req.user.uid});
});
}
else if(req.params.tab == 'sort-reputation') {
user.getUserList(function(data) {
data = data.sort(function(a, b) {
return b.reputation - a.reputation;
});
res.json({search_display: 'none', users:data, yourid:req.user.uid});
});
}
else {
user.getUserList(function(data) {
res.json({search_display: 'none', users:data, yourid:req.user.uid});
});
}

View File

@@ -253,6 +253,30 @@ var utils = require('./../public/src/utils.js'),
});
}
User.search = function(username, callback) {
console.log('searching '+username);
RDB.keys('username:'+ username + '*:uid', function(err, keys) {
if(err === null) {
//console.log(data);
/*var keys = [];
for(var i=0, ii=data.length; i<ii; ++i) {
keys.push('')
}*/
RDB.mget(keys, function(err, uids) {
console.log(uids);
User.getDataForUsers(uids, function(userdata) {
callback(userdata);
});
});
}
else
console.log(err);
});
}
User.sendConfirmationEmail = function (email) {
if (global.config['email:host'] && global.config['email:port'] && global.config['email:from']) {
var confirm_code = utils.generateUUID(),

View File

@@ -441,6 +441,20 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
admin.user.removeAdmin(uid, theirid, socket);
}
});
socket.on('api:admin.user.deleteUser', function(theirid) {
if(uid && uid > 0) {
admin.user.deleteUser(uid, theirid, socket);
}
});
socket.on('api:admin.user.search', function(username) {
if(uid && uid > 0) {
user.search(username, function(data) {
socket.emit('api:admin.user.search', data);
});
}
});
});
}(SocketIO));