2017-03-15 02:01:55 -06:00
|
|
|
'use strict';
|
|
|
|
|
2017-03-15 02:08:12 -06:00
|
|
|
const router = require('express').Router(),
|
2016-03-31 15:57:34 -06:00
|
|
|
mw = require('../middleware.js'),
|
2017-04-11 19:37:14 -06:00
|
|
|
User = require('../models.js').user,
|
|
|
|
mail = require('../mail.js');
|
2016-03-31 15:57:34 -06:00
|
|
|
|
2016-06-12 18:18:34 -06:00
|
|
|
router.route('/')
|
|
|
|
.all(mw.ensureAdmin, function(req,res,next){
|
2016-03-31 15:57:34 -06:00
|
|
|
next();
|
|
|
|
}).get(function(req,res){
|
2016-06-30 14:40:21 -06:00
|
|
|
|
|
|
|
var cbc = 0;
|
|
|
|
var checkCBC = function(req,res,err){
|
2017-01-04 15:35:39 -07:00
|
|
|
if (err) {
|
|
|
|
req.flash('error', err.message);
|
2017-04-12 11:41:27 -06:00
|
|
|
console.error(err);
|
2017-01-04 15:35:39 -07:00
|
|
|
}
|
|
|
|
if (cbc<1){ cbc++; }
|
|
|
|
else { // done
|
2017-04-01 11:03:05 -06:00
|
|
|
res.render('admin', {
|
2016-03-31 15:57:34 -06:00
|
|
|
noFooter: '1',
|
|
|
|
success:req.flash('success')[0],
|
|
|
|
error:req.flash('error')[0]
|
|
|
|
});
|
2016-06-30 14:40:21 -06:00
|
|
|
}
|
2017-01-04 15:35:39 -07:00
|
|
|
};
|
2016-06-30 14:40:21 -06:00
|
|
|
|
2017-04-12 11:41:27 -06:00
|
|
|
User.findById(req.user, function(err, found) {
|
2016-06-30 14:40:21 -06:00
|
|
|
res.locals.user = found;
|
|
|
|
checkCBC(req,res,err);
|
|
|
|
});
|
2016-09-08 05:26:12 -06:00
|
|
|
|
2016-06-30 14:40:21 -06:00
|
|
|
User.find({}).sort({lastLogin:-1}).exec(function(err, found){
|
|
|
|
res.locals.users = found;
|
|
|
|
checkCBC(req,res,err);
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2016-05-05 23:32:31 -06:00
|
|
|
router.route('/users')
|
2016-06-30 14:40:21 -06:00
|
|
|
.all(mw.ensureAdmin, function(req,res,next){
|
2016-08-09 23:51:49 -06:00
|
|
|
next();
|
2017-01-04 15:35:39 -07:00
|
|
|
}).post(function(req,res,next){
|
2016-05-05 23:32:31 -06:00
|
|
|
if (req.body.delete) {
|
|
|
|
User.findOneAndRemove({'_id':req.body.delete}, function(err,user){
|
|
|
|
if (err){ req.flash('error', err.message); }
|
|
|
|
else { req.flash('success', '<i>'+user.name+'</i> deleted.'); }
|
2016-06-30 14:40:21 -06:00
|
|
|
res.redirect('/admin#users');
|
2016-05-05 23:32:31 -06:00
|
|
|
});
|
2017-04-11 19:37:14 -06:00
|
|
|
} else { console.error('ERROR! POST without action sent. '); next(); }
|
2016-03-31 15:57:34 -06:00
|
|
|
});
|
2017-04-11 19:37:14 -06:00
|
|
|
|
|
|
|
router.route('/testmail').get(function(req,res,next){
|
|
|
|
mail.send({
|
|
|
|
to: `"Keith Irwin" <hypergeek14@gmail.com>`,
|
|
|
|
from: mail.from,
|
|
|
|
subject: 'Test email',
|
|
|
|
text: mail.text("Looks like everything's working! "),
|
|
|
|
html: mail.html("<p>Looks like everything's working! </p>")
|
|
|
|
}).then(function(){
|
|
|
|
console.log("Test email should have sent...");
|
|
|
|
res.sendStatus(200);
|
|
|
|
}).catch(function(err){
|
2017-04-12 11:41:27 -06:00
|
|
|
mw.throwErr(err,req);
|
2017-04-11 19:37:14 -06:00
|
|
|
next();
|
|
|
|
});
|
|
|
|
});
|
2016-03-31 15:57:34 -06:00
|
|
|
|
|
|
|
module.exports = router;
|