diff --git a/config/routes/settings.js b/config/routes/settings.js index fa6d726..4acfc01 100644 --- a/config/routes/settings.js +++ b/config/routes/settings.js @@ -166,57 +166,55 @@ router.route('/') res.redirect('/settings'); }); - } ) - - // Delete user account - .delete( (req,res,next)=>{ - - User.findByIdAndRemove(req.user) - .then( ()=>{ - req.flash('success', 'Your account has been deleted. '); - res.redirect('/'); - }) - .catch( (err)=>{ - mw.throwErr(err,req); - res.redirect('/settings'); - }); - } ); +// Delete account +router.get('/delete', (req,res)=>{ + User.findByIdAndRemove(req.user) + .then( ()=>{ + req.flash('success', 'Your account has been deleted. '); + res.redirect('/'); + }) + .catch( (err)=>{ + mw.throwErr(err,req); + res.redirect('/settings'); + }); +}); + // Confirm email address router.get('/email/:token', mw.ensureAuth, (req,res,next)=>{ + + // Check token + if ( req.user.emailToken===req.params.token) { - // Check token - if ( req.user.emailToken===req.params.token) { - - // Set new email - req.user.email = req.user.newEmail; - req.user.save() - .then( ()=>{ - // Delete token and newEmail - req.user.emailToken = undefined; - req.user.newEmail = undefined; - req.user.save(); - }) - .then( ()=>{ - // Report success - req.flash('success',`Your email has been set to ${req.user.email}. `); - res.redirect('/settings'); - }) - .catch( (err)=>{ - mw.throwErr(err,req); - res.redirect(req.session.next||'/settings'); - }); - - } - - // Invalid token - else { - req.flash('danger', 'Email confirmation token is invalid. '); + // Set new email + req.user.email = req.user.newEmail; + req.user.save() + .then( ()=>{ + // Delete token and newEmail + req.user.emailToken = undefined; + req.user.newEmail = undefined; + req.user.save(); + }) + .then( ()=>{ + // Report success + req.flash('success',`Your email has been set to ${req.user.email}. `); res.redirect('/settings'); - } + }) + .catch( (err)=>{ + mw.throwErr(err,req); + res.redirect(req.session.next||'/settings'); + }); - } ); + } + + // Invalid token + else { + req.flash('danger', 'Email confirmation token is invalid. '); + res.redirect('/settings'); + } + +} ); // Set password router.route('/password') diff --git a/static/js/settings.js b/static/js/settings.js index 77be716..4be5c27 100644 --- a/static/js/settings.js +++ b/static/js/settings.js @@ -26,16 +26,7 @@ $(function(){ // Delete account $('#delete').click(function(){ if (confirm("Are you sure you want to delete your account? This CANNOT be undone! ")) { - $.ajax({ - url: '/settings', - type: 'DELETE', - success: function(){ - location.reload(); - }, - fail: function(){ - alert("Failed to delete account!"); - } - }); + window.location.href = "/settings/delete"; } });