Fix bug that prevented sending of email

Add api key for export route
This commit is contained in:
2017-03-06 22:33:32 +00:00
parent 1912e2051f
commit 3f068dfcec
3 changed files with 8 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "wedding",
"version": "1.0.0",
"version": "1.0.1",
"private": true,
"engines": {
"node": ">=6.5",

View File

@@ -18,7 +18,7 @@ function getEmailText(person) {
return `Dear ${person.firstname}.\n\n
Thanks for your RSVP, ${person.attending ? 'we\'re delighted to hear you will be attending' : 'we\'re sorry to hear you will not be attending'}.\n
${person.attending ? `Your meal choices are ${starters[person.starter]} and ${mains[person.main]}.\n` : ''}
${person.attending && person.dietary.length > 0 ? `Your dietary requirements are: ${person.dietary}.\n` : ''}
${person.attending && person.dietary && person.dietary.trim().length > 0 ? `Your dietary requirements are: ${person.dietary}.\n` : ''}
You can modify your RSVP up until ${getRsvpEnd()} here: https://danielandhana.com/${person.password}.\n
${person.attending ? 'See you at our wedding,' : 'Hope to see you soon,'}\n
Daniel and Hana
@@ -29,7 +29,7 @@ function getEmailHTML(person) {
return `<p>Dear ${person.firstname}.</p>
<p>Thanks for your RSVP, ${person.attending ? 'we\'re delighted to hear you will be attending' : 'we\'re sorry to hear you will not be attending'}.</p>
${person.attending ? `<p>Your meal choices are <b>${starters[person.starter]}</b> and <b>${mains[person.main]}</b>.</p>` : ''}
${person.attending && person.dietary.length > 0 ? `<p>Your dietary requirements are: <b>${person.dietary}</b>.</p>` : ''}
${person.attending && person.dietary && person.dietary.trim().length > 0 ? `<p>Your dietary requirements are: <b>${person.dietary}</b>.</p>` : ''}
<p>You can modify your RSVP up until <b>${getRsvpEnd()}</b> <a href="https://danielandhana.com/${person.password}">here</a>.</p>
<p>${person.attending ? 'See you at our wedding,' : 'Hope to see you soon,'}</p>
<p>Daniel and Hana</p>

View File

@@ -21,7 +21,7 @@ import models from './data/models';
import schema from './data/schema';
import routes from './routes';
import assets from './assets'; // eslint-disable-line import/no-unresolved
import { port, auth, starters, mains, rsvpEndDate } from './config';
import { port, auth, starters, mains, rsvpEndDate, exportApiKey } from './config';
import Person from './data/models/Person';
import Settings from './data/models/Settings';
import Rollbar from './core/rollbar';
@@ -222,7 +222,10 @@ app.get('/login', (req, res, next) => {
app.use('/admin*', (req, res, next) => {
try {
if (!req.user || !admin(req.user.email)) {
// Allow if api key is valid and path is /admin/people/export
if (req.headers['x-api-key'] === exportApiKey && req.originalUrl === '/admin/people/export') {
next();
} else if (!req.user || !admin(req.user.email)) {
res.redirect(401, '/login');
} else {
next();