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; + }); + } + + next(null, uids); } ], callback); - return; } - async.waterfall([ - function(next) { - data.paginate = false; - user.search(data, next); - }, - function(_searchResult, next) { - searchResult = _searchResult; - var uids = searchResult.users.map(function(user) { - return user && user.uid; - }); - - if (!uids.length) { - return callback(null, searchResult); - } - Groups.getUserGroups(uids, next); - }, - function(groups, next) { - searchResult.users = searchResult.users.filter(function(user, index) { - return user && userInGroup(groups[index]); - }); - - 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 : [];