diff --git a/src/groups.js b/src/groups.js index dddd0aafcf..3f1ba0ddf7 100644 --- a/src/groups.js +++ b/src/groups.js @@ -1098,65 +1098,42 @@ var async = require('async'), Groups.searchMembers = function(data, callback) { - function userInGroup(userGroups) { - for(var i=0; i 1) { + uids = uids.filter(function(uid, index, array) { + return array.indexOf(uid) === index; + }); + } - if (!uids.length) { - return callback(null, searchResult); + next(null, uids); } - Groups.getUserGroups(uids, next); - }, - function(groups, next) { - searchResult.users = searchResult.users.filter(function(user, index) { - return user && userInGroup(groups[index]); - }); + ], callback); + } - pagination = user.paginate(data.page, searchResult.users); - searchResult.pagination = pagination.pagination; - searchResult.users = pagination.data; - next(null, searchResult); - } - ], callback); + data.findUids = findUids; + user.search(data, callback); }; }(module.exports)); diff --git a/src/user/search.js b/src/user/search.js index fc5b11681e..7545a6d3f3 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -26,7 +26,11 @@ module.exports = function(User) { var searchResult = {}; async.waterfall([ function(next) { - findUids(query, searchBy, startsWith, next); + if (data.findUids) { + data.findUids(query, searchBy, startsWith, next); + } else { + findUids(query, searchBy, startsWith, next); + } }, function(uids, next) { var filterBy = Array.isArray(data.filterBy) ? data.filterBy : [];