52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
'use strict'
|
|
|
|
const router = require('express').Router(),
|
|
zxcvbn = require('zxcvbn'),
|
|
mw = require('../middleware.js'),
|
|
mail = require('../mail.js')
|
|
|
|
router
|
|
|
|
.get('/mail', (req, res, next) => {
|
|
mail.send({
|
|
to: `"Keith Irwin" <hypergeek14@gmail.com>`,
|
|
from: mail.noReply,
|
|
subject: 'Test email',
|
|
text: mail.text("Looks like everything's working! "),
|
|
html: mail.html("<p>Looks like everything's working! </p>")
|
|
})
|
|
.then(() => {
|
|
console.log('Test email should have sent...')
|
|
res.sendStatus(200)
|
|
})
|
|
.catch((err) => {
|
|
mw.throwErr(err, req)
|
|
res.sendStatus(500)
|
|
})
|
|
})
|
|
|
|
.get('/password', (req, res) => {
|
|
res.render('password')
|
|
})
|
|
.post('/password', (req, res, next) => {
|
|
let zxcvbnResult = zxcvbn(req.body.password)
|
|
if (zxcvbnResult.crack_times_seconds.online_no_throttling_10_per_second < 864000) { // Less than ten days
|
|
let err = new Error(`That password could be cracked in ${zxcvbnResult.crack_times_display.online_no_throttling_10_per_second}! Come up with a more complex password that would take at least 10 days to crack. `)
|
|
mw.throwErr(err, req)
|
|
next(err)
|
|
} else {
|
|
res.sendStatus(200)
|
|
}
|
|
})
|
|
|
|
.get('/settings', (req, res) => {
|
|
res.render('settings')
|
|
})
|
|
.post('/settings', (req, res) => {
|
|
|
|
// TODO: Test validation here?
|
|
|
|
})
|
|
|
|
module.exports = router
|