diff options
author | David Renshaw <david@sandstorm.io> | 2016-11-22 10:34:31 -0500 |
---|---|---|
committer | David Renshaw <david@sandstorm.io> | 2016-11-22 10:34:31 -0500 |
commit | be47357cd4c88072c5ab5ebdfb790d06d92691ae (patch) | |
tree | c6ad3fdc81393220a25b16e1cdf7d4feabbee36a | |
parent | 7b5d08afd143baa835ecc40eab115d353e5d87dd (diff) | |
download | wekan-be47357cd4c88072c5ab5ebdfb790d06d92691ae.tar.gz wekan-be47357cd4c88072c5ab5ebdfb790d06d92691ae.tar.bz2 wekan-be47357cd4c88072c5ab5ebdfb790d06d92691ae.zip |
don't chain the presences cursor on the users cursor
-rw-r--r-- | server/publications/boards.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/server/publications/boards.js b/server/publications/boards.js index fd352552..89681978 100644 --- a/server/publications/boards.js +++ b/server/publications/boards.js @@ -60,6 +60,7 @@ Meteor.publish('archivedBoards', function() { Meteor.publishRelations('board', function(boardId) { check(boardId, String); + const thisUserId = this.userId; this.cursor(Boards.find({ _id: boardId, @@ -103,16 +104,20 @@ Meteor.publishRelations('board', function(boardId) { // Board members. This publication also includes former board members that // aren't members anymore but may have some activities attached to them in // the history. + const memberIds = _.pluck(board.members, 'userId'); + + // We omit the current user because the client should already have that data, + // and sending it triggers a subtle bug: + // https://github.com/wefork/wekan/issues/15 this.cursor(Users.find({ - _id: { $in: _.pluck(board.members, 'userId') }, + _id: { $in: _.without(memberIds, thisUserId)}, }, { fields: { 'username': 1, 'profile.fullname': 1, 'profile.avatarUrl': 1, - }}), function(userId) { - // Presence indicators - this.cursor(presences.find({ userId })); - }); + }})); + + this.cursor(presences.find({ userId: { $in: memberIds } })); } }); |