From 3a3d45155e76883b1d8aa29cb5f70cd0350d73b8 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 8 Jan 2015 17:06:33 -0500 Subject: [PATCH] show pending members in frontend UI, #2588 --- public/language/en_GB/groups.json | 1 + src/groups.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/public/language/en_GB/groups.json b/public/language/en_GB/groups.json index 9aade4c62d..d537e28667 100644 --- a/public/language/en_GB/groups.json +++ b/public/language/en_GB/groups.json @@ -5,6 +5,7 @@ "details.title": "Group Details", "details.members": "Member List", + "details.pending": "Pending Members", "details.has_no_posts": "This group's members have not made any posts.", "details.latest_posts": "Latest Posts" } \ No newline at end of file diff --git a/src/groups.js b/src/groups.js index eadabda28f..f6f619ff87 100644 --- a/src/groups.js +++ b/src/groups.js @@ -129,6 +129,19 @@ var async = require('async'), } }); }, + pending: function (next) { + db.getSetMembers('group:' + groupName + ':pending', function (err, uids) { + if (err) { + return next(err); + } + + if (options.expand) { + async.map(uids, user.getUserData, next); + } else { + next(err, uids); + } + }); + }, isMember: function(next) { // Retrieve group membership state, if uid is passed in if (!options.uid) { @@ -173,6 +186,7 @@ var async = require('async'), } results.base.members = results.users.filter(Boolean); + results.base.pending = results.pending.filter(Boolean); results.base.count = numUsers || results.base.members.length; results.base.memberCount = numUsers || results.base.members.length; results.base.deleted = !!parseInt(results.base.deleted, 10);