refactoring email notification, closes #8

This commit is contained in:
les
2019-09-06 11:58:11 +02:00
parent 2c24591621
commit beebca7ab9
31 changed files with 195 additions and 149 deletions

View File

@@ -186,7 +186,12 @@ const userController = {
if (!recover_code) return res.sendStatus(400)
const user = await User.findOne({ where: { recover_code: { [Op.eq]: recover_code } } })
if (!user) return res.sendStatus(400)
res.json(user)
try {
await user.update({ recover_code: ''})
res.sendStatus(200)
} catch (e) {
res.sendStatus(400)
}
},
async updatePasswordWithRecoverCode(req, res) {
@@ -195,6 +200,7 @@ const userController = {
if (!recover_code || !password) return res.sendStatus(400)
const user = await User.findOne({ where: { recover_code: { [Op.eq]: recover_code } } })
if (!user) return res.sendStatus(400)
user.recover_code = ''
user.password = password
try {
await user.save()
@@ -218,8 +224,8 @@ const userController = {
async update(req, res) {
const user = await User.findByPk(req.body.id)
if (user) {
if (!user.is_active && req.body.is_active) {
await mail.send(user.email, 'confirm', { user, config })
if (!user.is_active && req.body.is_active && user.recover_code) {
mail.send(user.email, 'confirm', { user, config })
}
await user.update(req.body)
res.json(user)
@@ -240,9 +246,11 @@ const userController = {
req.body.is_active = false
}
req.body.recover_code = crypto.randomBytes(16).toString('hex')
const user = await User.create(req.body)
try {
mail.send([user.email, config.admin], 'register', { user, config })
mail.send(user.email, 'register', { user, config })
mail.send(config.admin, 'admin_register', { user, config })
} catch (e) {
return res.status(400).json(e)
}