diff --git a/src/mailer.js b/src/mailer.js index dd4304033..381f669ea 100644 --- a/src/mailer.js +++ b/src/mailer.js @@ -246,12 +246,28 @@ function sendInvite(user, invitor) { enqueue(mailOptions); } -function userAdded(user) { +function userAdded(user, inviteSent) { assert.strictEqual(typeof user, 'object'); + assert.strictEqual(typeof inviteSent, 'boolean'); - debug('Sending mail for userAdded'); + debug('Sending mail for userAdded %s including invite link', inviteSent ? 'not' : ''); - mailUserEventToAdmins(user, 'was added'); + getAdminEmails(function (error, adminEmails) { + if (error) return console.log('Error getting admins', error); + + adminEmails = _.difference(adminEmails, [ user.email ]); + + var inviteLink = inviteSent ? null : config.adminOrigin() + '/api/v1/session/password/setup.html?reset_token=' + user.resetToken; + + var mailOptions = { + from: config.get('adminEmail'), + to: adminEmails.join(', '), + subject: util.format('%s %s in Cloudron %s', user.username, event, config.fqdn()), + text: render('user_added.ejs', { fqdn: config.fqdn(), username: user.username, email: user.email, event: event, inviteLink: inviteLink, format: 'text' }), + }; + + enqueue(mailOptions); + }); } function userRemoved(username) { diff --git a/src/user.js b/src/user.js index 9661ab602..f27b7b7d9 100644 --- a/src/user.js +++ b/src/user.js @@ -169,7 +169,7 @@ function createUser(username, password, email, displayName, admin, invitor, send callback(null, user); // WARNING do not send email for admins (this can only be the case for the owner, the first user creation during activation) - if (!admin) mailer.userAdded(user); + if (!admin) mailer.userAdded(user, sendInvite); if (sendInvite) mailer.sendInvite(user, invitor); }); });