Merge pull request #1785 from Akuket/devel

Bugfix : Resending invitation code.
This commit is contained in:
Lauri Ojansivu 2018-07-18 14:17:36 +03:00 committed by GitHub
commit c708877dde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 10 deletions

View file

@ -101,6 +101,7 @@ BlazeComponent.extendComponent({
// if (!err) {
// TODO - show more info to user
// }
this.setLoading(false);
});
}

View file

@ -124,20 +124,33 @@ if (Meteor.isServer) {
sendInvitation(emails, boards) {
check(emails, [String]);
check(boards, [String]);
const user = Users.findOne(Meteor.userId());
if(!user.isAdmin){
throw new Meteor.Error('not-allowed');
}
emails.forEach((email) => {
if (email && SimpleSchema.RegEx.Email.test(email)) {
const code = getRandomNum(100000, 999999);
InvitationCodes.insert({code, email, boardsToBeInvited: boards, createdAt: new Date(), authorId: Meteor.userId()}, function(err, _id){
if (!err && _id) {
sendInvitationEmail(_id);
} else {
throw new Meteor.Error('invitation-generated-fail', err.message);
}
});
// Checks if the email is already link to an account.
const userExist = Users.findOne({email});
if (userExist){
throw new Meteor.Error('user-exist', `The user with the email ${email} has already an account.`);
}
// Checks if the email is already link to an invitation.
const invitation = InvitationCodes.findOne({email});
if (invitation){
InvitationCodes.update(invitation, {$set : {boardsToBeInvited: boards}});
sendInvitationEmail(invitation._id);
}else {
const code = getRandomNum(100000, 999999);
InvitationCodes.insert({code, email, boardsToBeInvited: boards, createdAt: new Date(), authorId: Meteor.userId()}, function(err, _id){
if (!err && _id) {
sendInvitationEmail(_id);
} else {
throw new Meteor.Error('invitation-generated-fail', err.message);
}
});
}
}
});
},

View file

@ -501,9 +501,13 @@ if (Meteor.isServer) {
} else {
user.profile = {icode: options.profile.invitationcode};
user.profile.boardView = 'board-view-lists';
}
return user;
// Deletes the invitation code after the user was created successfully.
setTimeout(Meteor.bindEnvironment(() => {
InvitationCodes.remove({'_id': invitationCode._id});
}), 200);
return user;
}
});
}