From ae2c1fb77f498e0c92cbcb0a48fe6e7ecc9c14c4 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Tue, 29 Mar 2016 18:36:16 +0200 Subject: Fix initial board creation We cannot rely on the automatic userId setting of the collection hooks. If a user is created during invitation, the userId field will contain the id of the inviting user. This fix this, by mocking the CollectionHooks.getUserId function and returning the userId of the new user for all new documents after creating the user. --- .eslintrc.json | 1 + models/users.js | 32 +++++++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 939f7b46..87c2e2cf 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -74,6 +74,7 @@ "Avatars": true, "BlazeComponent": false, "BlazeLayout": false, + "CollectionHooks": false, "DocHead": false, "ESSearchResults": false, "FastRender": false, diff --git a/models/users.js b/models/users.js index b56fd2ab..629caa4a 100644 --- a/models/users.js +++ b/models/users.js @@ -388,25 +388,31 @@ if (Meteor.isServer) { incrementBoards(_.difference(newIds, oldIds), +1); }); + const fakeUserId = new Meteor.EnvironmentVariable(); + const getUserId = CollectionHooks.getUserId; + CollectionHooks.getUserId = () => { + return fakeUserId.get() || getUserId(); + }; + // XXX i18n Users.after.insert((userId, doc) => { - const ExampleBoard = { - title: 'Welcome Board', - userId: doc._id, - permission: 'private', + const fakeUser = { + extendAutoValueContext: { + userId: doc._id, + }, }; - // Insert the Welcome Board - Boards.insert(ExampleBoard, (err, boardId) => { + fakeUserId.withValue(doc._id, () => { + // Insert the Welcome Board + Boards.insert({ + title: 'Welcome Board', + permission: 'private', + }, fakeUser, (err, boardId) => { - ['Basics', 'Advanced'].forEach((title) => { - const list = { - title, - boardId, - userId: ExampleBoard.userId, - }; + ['Basics', 'Advanced'].forEach((title) => { + Lists.insert({ title, boardId }, fakeUser); + }); - Lists.insert(list); }); }); }); -- cgit v1.2.3-1-g7c22