fixing issue where after a user changed their username, the new name was not reindexed by Reds

v1.18.x
Julian Lam 11 years ago
parent 72fd78ac26
commit a48a7acd51

@ -115,7 +115,7 @@
}
}
module.searchRemove = function(key, id) {
module.searchRemove = function(key, id, callback) {
if(key === 'post') {
postSearch.remove(id);
} else if(key === 'topic') {
@ -123,6 +123,10 @@
} else if(key === 'user') {
userSearch.remove(id);
}
if (typeof callback === 'function') {
callback()
}
}
module.flushdb = function(callback) {

@ -77,16 +77,10 @@ SocketAdmin.user.banUser = function(theirid, sessionData) {
};
SocketAdmin.user.unbanUser = function(theirid, sessionData) {
if (sessionData.uid && sessionData.uid > 0) {
admin.user.unbanUser(sessionData.uid, theirid, sessionData.socket);
}
admin.user.unbanUser(sessionData.uid, theirid, sessionData.socket);
};
SocketAdmin.user.search = function(username, callback, sessionData) {
if (!(sessionData.uid && sessionData.uid > 0)) {
return callback();
}
user.search(username, function(data) {
function isAdmin(userData, next) {
user.isAdministrator(userData.uid, function(err, isAdmin) {
@ -124,33 +118,25 @@ SocketAdmin.categories.update = function(data, sessionData) {
};
SocketAdmin.categories.search = function(username, cid, callback, sessionData) {
if (sessionData.uid && sessionData.uid > 0) {
user.search(username, function(data) {
async.map(data, function(userObj, next) {
CategoryTools.privileges(cid, userObj.uid, function(err, privileges) {
if (!err) {
userObj.privileges = privileges;
} else {
winston.error('[socket api:admin.categories.search] Could not retrieve permissions');
}
next(null, userObj);
});
}, function(err, data) {
if (!callback) {
sessionData.socket.emit('api:admin.categories.search', data);
user.search(username, function(data) {
async.map(data, function(userObj, next) {
CategoryTools.privileges(cid, userObj.uid, function(err, privileges) {
if (!err) {
userObj.privileges = privileges;
} else {
callback(null, data);
winston.error('[socket api:admin.categories.search] Could not retrieve permissions');
}
next(null, userObj);
});
}, function(err, data) {
if (!callback) {
sessionData.socket.emit('api:admin.categories.search', data);
} else {
callback(null, data);
}
});
} else {
if (!callback) {
sessionData.socket.emit('api:admin.user.search', null);
} else {
callback();
}
}
});
};
SocketAdmin.categories.setPrivilege = function(cid, uid, privilege, set, callback) {

@ -309,10 +309,8 @@ var bcrypt = require('bcrypt'),
User.setUserField(uid, 'username', data.username);
db.deleteObjectField('username:uid', userData.username);
db.setObjectField('username:uid', data.username, uid);
db.searchRemove('user', uid, function() {
db.searchIndex('user', data.username, uid);
});
events.logUsernameChange(uid, userData.username, data.username);
User.reIndexUser(uid, data.username);
}
if(userslug !== userData.userslug) {
@ -451,19 +449,20 @@ var bcrypt = require('bcrypt'),
return callback(err, null);
}
function reIndexUser(uid, username) {
db.searchRemove('user', uid, function() {
db.searchIndex('user', username, uid);
});
}
for (var i = 0; i < usersData.length; ++i) {
reIndexUser(usersData[i].uid, usersData[i].username);
User.reIndexUser(usersData[i].uid, usersData[i].username);
}
callback(null, 1);
});
};
User.reIndexUser = function(uid, username) {
db.searchRemove('user', uid, function() {
db.searchIndex('user', username, uid);
});
};
// thanks to @akhoury
User.getUsersCSV = function(callback) {
var csvContent = "";

Loading…
Cancel
Save