mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
patch re-invit
This commit is contained in:
parent
c0ddecb2ee
commit
df54f15ecb
3 changed files with 27 additions and 8 deletions
|
@ -82,6 +82,7 @@ BlazeComponent.extendComponent({
|
|||
},
|
||||
|
||||
inviteThroughEmail() {
|
||||
/* eslint-disable no-console */
|
||||
const emails = $('#email-to-invite').val().trim().split('\n').join(',').split(',');
|
||||
const boardsToInvite = [];
|
||||
$('.js-toggle-board-choose .materialCheckBox.is-checked').each(function () {
|
||||
|
@ -99,9 +100,11 @@ BlazeComponent.extendComponent({
|
|||
// if (!err) {
|
||||
// TODO - show more info to user
|
||||
// }
|
||||
|
||||
this.setLoading(false);
|
||||
});
|
||||
}
|
||||
/* eslint-enable no-console */
|
||||
},
|
||||
|
||||
saveMailServerInfo() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -503,6 +503,9 @@ if (Meteor.isServer) {
|
|||
user.profile.boardView = 'board-view-lists';
|
||||
}
|
||||
|
||||
// Deletes the invitation.
|
||||
InvitationCodes.remove(invitationCode._id);
|
||||
|
||||
return user;
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue