mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
filter:users.search filter:users.build hooks
This commit is contained in:
@@ -43,7 +43,7 @@ usersController.getOnlineUsers = function(req, res, next) {
|
||||
anonymousUserCount: websockets.getOnlineAnonCount()
|
||||
};
|
||||
|
||||
res.render('users', userData);
|
||||
render(req, res, userData, next);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -72,7 +72,7 @@ usersController.getUsers = function(set, count, req, res, next) {
|
||||
pagination: pagination.create(1, pageCount)
|
||||
};
|
||||
userData['route_' + set] = true;
|
||||
res.render('users', userData);
|
||||
render(req, res, userData, next);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -113,10 +113,19 @@ usersController.getUsersForSearch = function(req, res, next) {
|
||||
users: data.users
|
||||
};
|
||||
|
||||
res.render('users', userData);
|
||||
render(req, res, userData, next);
|
||||
});
|
||||
};
|
||||
|
||||
function render(req, res, data, next) {
|
||||
plugins.fireHook('filter:users.build', {req: req, res: res, templateData: data}, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
res.render('users', data.templateData);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = usersController;
|
||||
|
||||
@@ -87,16 +87,9 @@ module.exports = function(User) {
|
||||
function(uid, next) {
|
||||
userData.uid = uid;
|
||||
db.setObject('user:' + uid, userData, next);
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
async.parallel([
|
||||
function(next) {
|
||||
db.incrObjectField('global', 'userCount', next);
|
||||
},
|
||||
function(next) {
|
||||
async.parallel([
|
||||
function(next) {
|
||||
db.setObjectField('username:uid', userData.username, userData.uid, next);
|
||||
},
|
||||
@@ -138,18 +131,29 @@ module.exports = function(User) {
|
||||
], next);
|
||||
});
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
], next);
|
||||
},
|
||||
function(results, next) {
|
||||
User.updateUserCount(next);
|
||||
},
|
||||
function(next) {
|
||||
if (userNameChanged) {
|
||||
User.notifications.sendNameChangeNotification(userData.uid, userData.username);
|
||||
}
|
||||
plugins.fireHook('action:user.create', userData);
|
||||
callback(null, userData.uid);
|
||||
});
|
||||
next(null, userData.uid);
|
||||
}
|
||||
], callback);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
User.updateUserCount = function(callback) {
|
||||
db.sortedSetCard('users:joindate', function(err, count) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
db.setObjectField('global', 'userCount', count, callback);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ module.exports = function(User) {
|
||||
db.deleteAll(['followers:' + uid, 'following:' + uid, 'user:' + uid], next);
|
||||
},
|
||||
function(next) {
|
||||
db.decrObjectField('global', 'userCount', next);
|
||||
User.updateUserCount(next);
|
||||
}
|
||||
], callback);
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ var async = require('async'),
|
||||
meta = require('../meta'),
|
||||
user = require('../user'),
|
||||
pagination = require('../pagination'),
|
||||
plugins = require('../plugins'),
|
||||
db = require('../database');
|
||||
|
||||
module.exports = function(User) {
|
||||
@@ -52,7 +53,10 @@ module.exports = function(User) {
|
||||
searchResult.timing = (process.elapsedTimeSince(startTime) / 1000).toFixed(2);
|
||||
searchResult.users = userData;
|
||||
|
||||
next(null, searchResult);
|
||||
plugins.fireHook('filter:users.search', {result: searchResult, uid: uid}, next);
|
||||
},
|
||||
function(data, next) {
|
||||
next(null, data.result);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user