diff --git a/src/routes/user.js b/src/routes/user.js index f06966a64..4ef61fd1c 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -19,7 +19,8 @@ var assert = require('assert'), HttpSuccess = require('connect-lastmile').HttpSuccess, user = require('../user.js'), tokendb = require('../tokendb.js'), - UserError = user.UserError; + UserError = user.UserError, + _ = require('underscore'); function auditSource(req) { var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || null; @@ -81,9 +82,14 @@ function update(req, res, next) { } function list(req, res, next) { - user.list(function (error, result) { + user.list(function (error, results) { if (error) return next(new HttpError(500, error)); - next(new HttpSuccess(200, { users: result })); + + var users = results.map(function (result) { + return _.pick(result, 'id', 'username', 'email', 'displayName', 'groupIds', 'admin'); + }); + + next(new HttpSuccess(200, { users: users })); }); } diff --git a/src/user.js b/src/user.js index d3ae7f999..1c3c31729 100644 --- a/src/user.js +++ b/src/user.js @@ -276,15 +276,13 @@ function removeUser(userId, auditSource, callback) { function listUsers(callback) { assert.strictEqual(typeof callback, 'function'); - userdb.getAllWithGroupIds(function (error, result) { + userdb.getAllWithGroupIds(function (error, results) { if (error) return callback(new UserError(UserError.INTERNAL_ERROR, error)); - var allUsers = result.map(function (obj) { - var u = _.pick(obj, 'id', 'username', 'email', 'displayName', 'groupIds'); - u.admin = u.groupIds.indexOf(groups.ADMIN_GROUP_ID) !== -1; - return u; + results.forEach(function (result) { + result.admin = result.groupIds.indexOf(groups.ADMIN_GROUP_ID) !== -1; }); - return callback(null, allUsers); + return callback(null, results); }); }