Adding endpoint for admins to send transactional e-mail.

This commit is contained in:
David Jay
2017-01-06 14:26:58 -05:00
parent e510f99754
commit 565e34e09d
2 changed files with 22 additions and 0 deletions
+21
View File
@@ -7,6 +7,8 @@ const fs = require('fs');
const path = require('path');
const resetEmailFile = fs.readFileSync(path.resolve(__dirname, '../../../views/password-reset-email.ejs'));
const resetEmailTemplate = ejs.compile(resetEmailFile.toString());
const notificationEmailFile = fs.readFileSync(path.resolve(__dirname, '../../../views/notification-email.ejs'));
const notificationEmailTemplate = ejs.compile(notificationEmailFile.toString());
const authorization = require('../../../middleware/authorization');
const csrf = require('csurf');
@@ -64,6 +66,25 @@ router.post('/:user_id/status', parseForm, csrfProtection, (req, res, next) => {
.catch(next);
});
router.post('/:user_id/email', authorization.needed('admin'), parseForm, csrfProtection, (req, res, next) => {
User.find(req.user_id)
.then(user => {
const options = {
subject: req.subject,
from: process.env.TALK_SMTP_FROM_ADDRESS,
to: user.email,
html: notificationEmailTemplate({
body: req.body
})
};
return mailer.sendSimple(options);
})
.then(() => {
res.status(204).end();
});
});
router.post('/', parseForm, csrfProtection, (req, res, next) => {
const {email, password, displayName} = req.body;
+1
View File
@@ -0,0 +1 @@
<%= body %>