summaryrefslogtreecommitdiffstats
path: root/models/users.js
diff options
context:
space:
mode:
authorDrew Fisher <drew@sandstorm.io>2016-07-11 15:21:19 -0700
committerDavid Renshaw <david@sandstorm.io>2016-11-03 23:42:00 -0400
commit0f62fe0c6e5a151be0aa7baf60405ef2e878a0d8 (patch)
tree4c2b32e7825bfd5d44dedce4d80c9b2573dcb4af /models/users.js
parent87ce042c63b403780bcd5c5a50967925d433a1a1 (diff)
downloadwekan-0f62fe0c6e5a151be0aa7baf60405ef2e878a0d8.tar.gz
wekan-0f62fe0c6e5a151be0aa7baf60405ef2e878a0d8.tar.bz2
wekan-0f62fe0c6e5a151be0aa7baf60405ef2e878a0d8.zip
Fix login on Sandstorm by not creating welcome boards
This one is a pretty strange chain of events: * fetching /.sandstorm-login via accounts-sandstorm's rendezvous protocol causes a user to be created in the users collection * models/users.js has hooks to create a board and lists when a user is created * models/activities.js has a hook to create activity entries when a list is created * this hook does not handle not having no boardId, which results in attempting to run the hook with boardId: 'false'. 'false' does not have a title attribute, which causes the whole method call to throw an exception. * This makes the initial login fail. While there may be other bugs, the simple fix is to not create the board and lists when running under Sandstorm, where you only have one board anyway.
Diffstat (limited to 'models/users.js')
-rw-r--r--models/users.js40
1 files changed, 23 insertions, 17 deletions
diff --git a/models/users.js b/models/users.js
index 790ee0a1..bdc5ddfe 100644
--- a/models/users.js
+++ b/models/users.js
@@ -1,3 +1,7 @@
+// Sandstorm context is detected using the METEOR_SETTINGS environment variable
+// in the package definition.
+const isSandstorm = Meteor.settings && Meteor.settings.public &&
+ Meteor.settings.public.sandstorm;
Users = Meteor.users;
Users.attachSchema(new SimpleSchema({
@@ -394,24 +398,26 @@ if (Meteor.isServer) {
return fakeUserId.get() || getUserId();
};
- Users.after.insert((userId, doc) => {
- const fakeUser = {
- extendAutoValueContext: {
- userId: doc._id,
- },
- };
-
- fakeUserId.withValue(doc._id, () => {
- // Insert the Welcome Board
- Boards.insert({
- title: TAPi18n.__('welcome-board'),
- permission: 'private',
- }, fakeUser, (err, boardId) => {
-
- ['welcome-list1', 'welcome-list2'].forEach((title) => {
- Lists.insert({ title: TAPi18n.__(title), boardId }, fakeUser);
+ if (!isSandstorm) {
+ Users.after.insert((userId, doc) => {
+ const fakeUser = {
+ extendAutoValueContext: {
+ userId: doc._id,
+ },
+ };
+
+ fakeUserId.withValue(doc._id, () => {
+ // Insert the Welcome Board
+ Boards.insert({
+ title: TAPi18n.__('welcome-board'),
+ permission: 'private',
+ }, fakeUser, (err, boardId) => {
+
+ ['welcome-list1', 'welcome-list2'].forEach((title) => {
+ Lists.insert({ title: TAPi18n.__(title), boardId }, fakeUser);
+ });
});
});
});
- });
+ }
}