diff --git a/app.js b/app.js index c1b2202..f27ef27 100755 --- a/app.js +++ b/app.js @@ -4,6 +4,9 @@ var app = express(); var crontab = require("./crontab"); var restore = require("./restore"); var moment = require('moment'); +var auth = require('./auth'); + +app.use(auth); var path = require('path'); var mime = require('mime-types'); diff --git a/auth.js b/auth.js new file mode 100644 index 0000000..8d2a29f --- /dev/null +++ b/auth.js @@ -0,0 +1,12 @@ +const auth = require('basic-auth'); + +const admins = { 'admin': { password: 'admin' }, }; + +module.exports = function (request, response, next) { + var user = auth(request); + if (!user || !admins[user.name] || admins[user.name].password !== user.pass) { + response.set('WWW-Authenticate', 'Basic realm="crontab-ui"'); + return response.status(401).send(); + } + return next(); +}; diff --git a/package.json b/package.json index c2a3521..f254069 100755 --- a/package.json +++ b/package.json @@ -7,14 +7,16 @@ "start": "node app.js" }, "dependencies": { - "express": "latest", - "ejs": "latest", - "nedb": "latest", "body-parser": "latest", - "mime-types": "latest", - "cron-parser": "latest", "connect-busboy": "latest", + "cron-parser": "latest", + "ejs": "latest", + "express": "latest", + "express-basic-auth": "^1.1.6", + "basic-auth": "^2.0.1", + "mime-types": "latest", "moment": "latest", + "nedb": "latest", "nodemailer": "latest" }, "engines": {