summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/index.js2
-rw-r--r--app/node_modules/okadminview/index.js19
-rw-r--r--app/node_modules/okadminview/package.json2
3 files changed, 22 insertions, 1 deletions
diff --git a/app/index.js b/app/index.js
index e462b48..708943c 100644
--- a/app/index.js
+++ b/app/index.js
@@ -32,7 +32,7 @@ function OKCMS(options) {
var adminConfig = options.admin || {};
var adminRoot = this._adminRoot = adminConfig.root ||
path.join(__dirname, '../themes/okadmin/public');
- var adminPath = this._adminPath = adminConfig.path || '/_admin'
+ var adminPath = this._adminPath = '/_admin';
var templateRoot = options.templateRoot || 'templates';
var adminTemplateRoot = options.templateRoot ||
path.join(__dirname, '../themes/okadmin/templates');
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js
index 897c583..ac633e8 100644
--- a/app/node_modules/okadminview/index.js
+++ b/app/node_modules/okadminview/index.js
@@ -4,10 +4,22 @@ var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var session = require('express-session');
var flash = require('connect-flash');
+var passport = require('passport');
+var DigestStrategy = require('passport-http').DigestStrategy;
var Q = require('q');
var pluralize = require('pluralize');
var OKQuery = require('okquery');
+// Configure auth
+passport.use(new DigestStrategy({qop: 'auth'},
+ function authenticate(username, done) {
+ if (!process.env.OK_USER || !process.env.OK_PASS) {
+ return done(new Error('No user or pass configured on server'));
+ } else {
+ return done(null, process.env.OK_USER, process.env.OK_PASS);
+ }
+}));
+
/**
* OKAdminView!
*/
@@ -100,6 +112,13 @@ function OKAdminView(options) {
}
}));
+ var auth = passport.authenticate('digest', {session: false});
+
+ // This should really be mounted on the router, but can't be due to
+ // https://github.com/jaredhanson/passport-http/pull/16
+ app.use('/_admin/', passport.initialize());
+ app.all('/_admin/:path*', auth);
+
router.get('/', function readIndex(req, res, next) {
fetchIndexTemplateData(meta, indexQueries).then(function(data) {
view.renderIndex(req, res, assign(data, {
diff --git a/app/node_modules/okadminview/package.json b/app/node_modules/okadminview/package.json
index 4c6d11c..bdaefc5 100644
--- a/app/node_modules/okadminview/package.json
+++ b/app/node_modules/okadminview/package.json
@@ -15,6 +15,8 @@
"lodash.clonedeep": "^3.0.0",
"method-override": "^2.3.2",
"object-assign": "^2.0.0",
+ "passport": "^0.2.1",
+ "passport-http": "^0.2.2",
"pluralize": "^1.1.2",
"q": "^1.2.0"
}