Browse Source

ignore email signups that already exist and are verified, fixes #9

2015
joates 7 years ago
parent
commit
baeab714db
  1. 71
      src/email-submit.js

71
src/email-submit.js

@ -19,42 +19,47 @@ module.exports = function(db) {
var obj = {}
, email = sanitize(params.query.email)
console.log('got email:', params.query)
obj.token = rn()
obj.verified = false
obj.events = { paris: params.query.paris ? true : false }
obj.trace = ip(req)
db.put(email, obj, function(err) {
if (err) return error(err)
// db write OK..
var nodemailer = require('nodemailer')
, transporter = nodemailer.createTransport()
, url = config.host +'/confirm'
, qstr = '?email='+ email +'&token='+ obj.token
, link = url + qstr +'\n\n'
var opts = {
from : config.email.from
, to : email
, subject: config.email.subject
//, link : link
, text : config.email.bodyText.replace(/\%link\%/, link)
}
db.get(email, function(err, value) {
if ((err && err.type == 'NotFoundError') || ! value.verified) {
console.log('got email:', params.query)
obj.token = rn()
obj.verified = false
obj.events = { paris: params.query.paris ? true : false }
obj.trace = ip(req)
db.put(email, obj, function(err) {
if (err) return error(err)
transporter.sendMail(opts, function(err, data) {
if (err) return error(err)
// db write OK..
var nodemailer = require('nodemailer')
, transporter = nodemailer.createTransport()
, url = config.host +'/confirm'
, qstr = '?email='+ email +'&token='+ obj.token
, link = url + qstr +'\n\n'
// validation email sent
console.log('email sent..', opts)
var opts = {
from : config.email.from
, to : email
, subject: config.email.subject
, text : config.email.bodyText.replace(/\%link\%/, link)
}
transporter.sendMail(opts, function(err, data) {
if (err) return error(err)
// validation email sent
console.log('email sent..', opts)
res.statusCode = 302
res.setHeader('Location', '/')
return res.end()
})
})
}
}
res.statusCode = 302
res.setHeader('Location', '/')
return res.end()
})
})
} else {
error('invalid input: '+ JSON.stringify(params.query))
}

Loading…
Cancel
Save