mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-04 03:21:18 +01:00
add api endpoints to get user by username and by email
Signed-off-by: Dustin Falgout <dustin@falgout.us>
This commit is contained in:
@@ -195,6 +195,54 @@ apiController.getUserByUID = function(req, res, next) {
|
||||
};
|
||||
|
||||
|
||||
apiController.getUserByUsername = function (req, res, next) {
|
||||
var username = req.params.username ? req.params.username : 0;
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
user.getUidByUsername(username, next);
|
||||
},
|
||||
async.parallel({
|
||||
userData: async.apply(user.getUserData, uid),
|
||||
settings: async.apply(user.getSettings, uid)
|
||||
}, function (err, results) {
|
||||
if (err || !results.userData) {
|
||||
return next(err);
|
||||
}
|
||||
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
|
||||
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
|
||||
|
||||
res.json(results.userData);
|
||||
})
|
||||
|
||||
], next);
|
||||
};
|
||||
|
||||
|
||||
apiController.getUserByEmail = function (req, res, next) {
|
||||
var email = req.params.email ? req.params.email : 0;
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
user.getUidByEmail(email, next);
|
||||
},
|
||||
async.parallel({
|
||||
userData: async.apply(user.getUserData, uid),
|
||||
settings: async.apply(user.getSettings, uid)
|
||||
}, function (err, results) {
|
||||
if (err || !results.userData) {
|
||||
return next(err);
|
||||
}
|
||||
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
|
||||
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
|
||||
|
||||
res.json(results.userData);
|
||||
})
|
||||
|
||||
], next);
|
||||
};
|
||||
|
||||
|
||||
apiController.getModerators = function(req, res, next) {
|
||||
categories.getModerators(req.params.cid, function(err, moderators) {
|
||||
if (err) {
|
||||
|
||||
@@ -13,6 +13,9 @@ module.exports = function(app, middleware, controllers) {
|
||||
router.get('/widgets/render', controllers.api.renderWidgets);
|
||||
|
||||
router.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.api.getUserByUID);
|
||||
router.get('/user/username/:username', middleware.checkGlobalPrivacySettings, controllers.api.getUserByUsername);
|
||||
router.get('/user/email/:email', middleware.checkGlobalPrivacySettings, controllers.api.getUserByEmail);
|
||||
|
||||
router.get('/:type/pid/:id', controllers.api.getObject);
|
||||
router.get('/:type/tid/:id', controllers.api.getObject);
|
||||
router.get('/:type/cid/:id', controllers.api.getObject);
|
||||
@@ -28,7 +31,7 @@ module.exports = function(app, middleware, controllers) {
|
||||
router.post('/post/upload', middlewares, uploadsController.uploadPost);
|
||||
router.post('/topic/thumb/upload', middlewares, uploadsController.uploadThumb);
|
||||
router.post('/user/:userslug/uploadpicture', middlewares.concat([middleware.authenticate, middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadPicture);
|
||||
|
||||
|
||||
router.post('/user/:userslug/uploadcover', middlewares.concat([middleware.authenticate, middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadCoverPicture);
|
||||
router.post('/groups/uploadpicture', middlewares.concat([middleware.authenticate]), controllers.groups.uploadCover);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user