var express = require('express'); var nunjucks = require('nunjucks'); var bodyParser = require('body-parser'); var config; var logger; var app = express(); function pageHome(req, res, next) { res.render('restart.html', {title: config.globals.smsc}); } function doRestart(req, res, next) { if (config.webadmin.password.trim() && config.webadmin.password.trim() == req.body.password) { res.end('Restarting'); process.exit(1); } else { res.redirect('/'); } } function init(options) { config = options.config; logger = options.logger; app.set('views', './views'); app.use(express.static('public', {maxAge: 24 * 3600 * 1000})); app.use(bodyParser.urlencoded({extended: true})); nunjucks.configure('views', { autoescape: true, express: app }); app.get('/', pageHome); app.post('/', doRestart); app.listen(config.webadmin.listen_port, function () { logger.info('Webadmin listening on port ' + config.webadmin.listen_port); }); }; exports.init = init;