Skip to content

Commit

Permalink
feat: allow passing groupName to user.search
Browse files Browse the repository at this point in the history
  • Loading branch information
barisusakli committed Jul 29, 2020
1 parent 292d490 commit f89ec20
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
16 changes: 7 additions & 9 deletions src/groups/search.js
Expand Up @@ -54,16 +54,14 @@ module.exports = function (Groups) {
return { users: users };
}

const results = await user.search({
...data,
paginate: false,
hardCap: -1,
groupName: data.groupName,
});

data.paginate = false;
const results = await user.search(data);

let uids = results.users.map(user => user && user.uid);
const isMembers = await Groups.isMembers(uids, data.groupName);

results.users = results.users.filter((user, index) => isMembers[index]);

uids = results.users.map(user => user && user.uid);
const uids = results.users.map(user => user && user.uid);
const isOwners = await Groups.ownership.isOwners(uids, data.groupName);

results.users.forEach(function (user, index) {
Expand Down
7 changes: 6 additions & 1 deletion src/user/search.js
Expand Up @@ -6,6 +6,7 @@ const _ = require('lodash');
const meta = require('../meta');
const plugins = require('../plugins');
const db = require('../database');
const groups = require('../groups');
const utils = require('../utils');

module.exports = function (User) {
Expand Down Expand Up @@ -84,13 +85,17 @@ module.exports = function (User) {
fields.push('flags');
}

if (data.groupName) {
const isMembers = await groups.isMembers(uids, data.groupName);
uids = uids.filter((uid, index) => isMembers[index]);
}

if (!fields.length) {
return uids;
}

fields.push('uid');
let userData = await User.getUsersFields(uids, fields);
userData = userData.filter(Boolean);
if (data.onlineOnly) {
userData = userData.filter(user => user.status !== 'offline' && (Date.now() - user.lastonline < 300000));
}
Expand Down

0 comments on commit f89ec20

Please sign in to comment.