From 1d70dc0d8bcdd082dfcb83d7666676ba5f0f9687 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 11 Aug 2016 08:41:34 +0300 Subject: [PATCH] closes #4930 --- src/controllers/accounts/info.js | 22 +++++++++++++++------- src/user/data.js | 11 +++++++---- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js index 6662c60cd6..1117cb28c1 100644 --- a/src/controllers/accounts/info.js +++ b/src/controllers/accounts/info.js @@ -1,22 +1,30 @@ 'use strict'; -var async = require('async'), - _ = require('underscore'), +var async = require('async'); +var _ = require('underscore'); - user = require('../../user'), - helpers = require('../helpers'), - accountHelpers = require('./helpers'); +var user = require('../../user'); +var helpers = require('../helpers'); +var accountHelpers = require('./helpers'); var infoController = {}; infoController.get = function(req, res, next) { accountHelpers.getBaseUser(req.params.userslug, req.uid, function(err, userData) { + if (err) { + return next(err); + } + async.parallel({ ips: async.apply(user.getIPs, res.locals.uid, 4), history: async.apply(user.getModerationHistory, res.locals.uid), fields: async.apply(user.getUserFields, res.locals.uid, ['banned']) }, function(err, data) { - data = _.extend(userData, { + if (err) { + return next(err); + } + + userData = _.extend(userData, { ips: data.ips, history: data.history }, data.fields); @@ -24,7 +32,7 @@ infoController.get = function(req, res, next) { userData.title = '[[pages:account/info]]'; userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:settings]]'}]); - res.render('account/info', data); + res.render('account/info', userData); }); }); }; diff --git a/src/user/data.js b/src/user/data.js index 8e179ca119..d5a25bf7b4 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -58,14 +58,15 @@ module.exports = function(User) { if (fields.indexOf('banned') !== -1) { // Also retrieve ban expiry for these users db.sortedSetScores('users:banned:expire', uids, function(err, scores) { - users = users.map(function(userObj, idx) { + users.forEach(function(userObj, idx) { userObj.banned_until = scores[idx] || 0; userObj.banned_until_readable = scores[idx] ? new Date(scores[idx]).toString() : 'Not Banned'; }); + modifyUserData(users, fieldsToRemove, callback); }); + } else { + modifyUserData(users, fieldsToRemove, callback); } - - modifyUserData(users, fieldsToRemove, callback); }); }; @@ -104,7 +105,9 @@ module.exports = function(User) { return; } - user.username = validator.escape(user.username ? user.username.toString() : ''); + if (user.hasOwnProperty('username')) { + user.username = validator.escape(user.username ? user.username.toString() : ''); + } if (user.password) { user.password = undefined;