diff options
Diffstat (limited to 'models/users.js')
-rw-r--r-- | models/users.js | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/models/users.js b/models/users.js index a1bc5b0f..1a021bb7 100644 --- a/models/users.js +++ b/models/users.js @@ -1240,6 +1240,25 @@ if (Meteor.isServer) { Authentication.checkLoggedIn(req.userId); const data = Meteor.users.findOne({ _id: req.userId }); delete data.services; + + // get all boards where the user is member of + let boards = Boards.find( + { + type: 'board', + 'members.userId': req.userId, + }, + { + fields: { _id: 1, members: 1 }, + }, + ); + boards = boards.map(b => { + const u = b.members.find(m => m.userId === req.userId); + delete u.userId; + u.boardId = b._id; + return u; + }); + + data.boards = boards; JsonRoutes.sendResult(res, { code: 200, data, @@ -1292,9 +1311,29 @@ if (Meteor.isServer) { try { Authentication.checkUserId(req.userId); const id = req.params.userId; + + // get all boards where the user is member of + let boards = Boards.find( + { + type: 'board', + 'members.userId': id, + }, + { + fields: { _id: 1, members: 1 }, + }, + ); + boards = boards.map(b => { + const u = b.members.find(m => m.userId === id); + delete u.userId; + u.boardId = b._id; + return u; + }); + + const user = Meteor.users.findOne({ _id: id }); + user.boards = boards; JsonRoutes.sendResult(res, { code: 200, - data: Meteor.users.findOne({ _id: id }), + data: user, }); } catch (error) { JsonRoutes.sendResult(res, { |