diff --git a/client/homebrew/homebrew.jsx b/client/homebrew/homebrew.jsx index 7d44423..f6233ca 100644 --- a/client/homebrew/homebrew.jsx +++ b/client/homebrew/homebrew.jsx @@ -26,16 +26,16 @@ const Homebrew = React.createClass({ return { url : '', version : '0.0.0', - user : undefined, + loginPath : '', + user : undefined, brew : undefined, brews : [] }; }, componentWillMount: function() { - //TODO: remove - global.account = this.props.account; - global.version = this.props.version; + console.log('user', this.props.user); + console.log('loginpath', this.props.loginPath); //console.log(mapObject(['version', 'brew', 'account'], this.props)); diff --git a/server/admin.api.js b/server/admin.routes.js similarity index 81% rename from server/admin.api.js rename to server/admin.routes.js index cbf7808..a526e5e 100644 --- a/server/admin.api.js +++ b/server/admin.routes.js @@ -7,10 +7,10 @@ const config = require('nconf'); const mw = require('./middleware.js'); const BrewData = require('./brew.data.js'); -router.get('/admin', mw.adminLogin, (req, res) => { +router.get('/admin', mw.adminLogin, (req, res, next) => { return vitreumRender('admin', templateFn, { url : req.originalUrl, - admin_key : config.get('admin"key') + admin_key : config.get('admin:key') }) .then((page) => { return res.send(page) @@ -19,7 +19,7 @@ router.get('/admin', mw.adminLogin, (req, res) => { }); //Removes all empty brews that are older than 3 days and that are shorter than a tweet -router.del('/admin/invalid', mw.adminOnly, (req, res)=>{ +router.delete('/admin/invalid', mw.adminOnly, (req, res, next)=>{ BrewData.removeInvalid(!!req.query.do_it) .then((removedCount) => { return res.join({ diff --git a/server/app.js b/server/app.js index 12b59ec..bcad35c 100644 --- a/server/app.js +++ b/server/app.js @@ -14,9 +14,9 @@ app.use(mw.admin); //Routes -app.use(require('./interface.routes.js')); app.use(require('./brew.api.js')); -//app.use(require('./admin.api.js')); +app.use(require('./interface.routes.js')); +app.use(require('./admin.routes.js')); if(config.get('NODE_ENV') !== 'staging' && config.get('NODE_ENV') !== 'production'){ app.use(require('./dev.routes.js')); diff --git a/server/dev.routes.js b/server/dev.routes.js index acbee9d..5b8d1df 100644 --- a/server/dev.routes.js +++ b/server/dev.routes.js @@ -1,9 +1,24 @@ const router = require('express').Router(); +const jwt = require('jwt-simple'); +const auth = require('basic-auth'); +const config = require('nconf'); - - - +router.get('/dev/login', (req, res, next) => { + const user = req.query.user; + if(!user){ + return res.send(` + +dev login + +`); + } + res.cookie('nc_session', jwt.encode({username : req.query.user}, config.get('jwt_secret'))); + return res.redirect('/'); +}); diff --git a/server/interface.routes.js b/server/interface.routes.js index e60dab9..c6c5903 100644 --- a/server/interface.routes.js +++ b/server/interface.routes.js @@ -1,4 +1,5 @@ const _ = require('lodash'); +const config = require('nconf'); const utils = require('./utils.js'); const BrewData = require('./brew.data.js'); const router = require('express').Router(); @@ -18,7 +19,7 @@ const renderPage = (req, res, next) => { return vitreumRender('homebrew', templateFn, { url : req.originalUrl, version : require('../package.json').version, - //TODO: add in login path? + loginPath : config.get('login_path'), user : req.account && req.account.username, brews : req.brews, diff --git a/server/middleware.js b/server/middleware.js index 4f72236..cc2a535 100644 --- a/server/middleware.js +++ b/server/middleware.js @@ -37,6 +37,7 @@ const Middleware = { if(!creds || creds.name !== config.get('admin:user') || creds.pass !== config.get('admin:pass')){ + res.setHeader('WWW-Authenticate', 'Basic realm="example"'); return next(Error.noAdmin()); } return next();