mirror of
https://github.com/stolksdorf/homebrewery.git
synced 2025-12-20 05:51:30 +00:00
Backend of local login working
This commit is contained in:
@@ -26,16 +26,16 @@ const Homebrew = React.createClass({
|
|||||||
return {
|
return {
|
||||||
url : '',
|
url : '',
|
||||||
version : '0.0.0',
|
version : '0.0.0',
|
||||||
user : undefined,
|
loginPath : '',
|
||||||
|
|
||||||
|
user : undefined,
|
||||||
brew : undefined,
|
brew : undefined,
|
||||||
brews : []
|
brews : []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
componentWillMount: function() {
|
componentWillMount: function() {
|
||||||
//TODO: remove
|
console.log('user', this.props.user);
|
||||||
global.account = this.props.account;
|
console.log('loginpath', this.props.loginPath);
|
||||||
global.version = this.props.version;
|
|
||||||
|
|
||||||
//console.log(mapObject(['version', 'brew', 'account'], this.props));
|
//console.log(mapObject(['version', 'brew', 'account'], this.props));
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ const config = require('nconf');
|
|||||||
const mw = require('./middleware.js');
|
const mw = require('./middleware.js');
|
||||||
const BrewData = require('./brew.data.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, {
|
return vitreumRender('admin', templateFn, {
|
||||||
url : req.originalUrl,
|
url : req.originalUrl,
|
||||||
admin_key : config.get('admin"key')
|
admin_key : config.get('admin:key')
|
||||||
})
|
})
|
||||||
.then((page) => {
|
.then((page) => {
|
||||||
return res.send(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
|
//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)
|
BrewData.removeInvalid(!!req.query.do_it)
|
||||||
.then((removedCount) => {
|
.then((removedCount) => {
|
||||||
return res.join({
|
return res.join({
|
||||||
@@ -14,9 +14,9 @@ app.use(mw.admin);
|
|||||||
|
|
||||||
|
|
||||||
//Routes
|
//Routes
|
||||||
app.use(require('./interface.routes.js'));
|
|
||||||
app.use(require('./brew.api.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'){
|
if(config.get('NODE_ENV') !== 'staging' && config.get('NODE_ENV') !== 'production'){
|
||||||
app.use(require('./dev.routes.js'));
|
app.use(require('./dev.routes.js'));
|
||||||
|
|||||||
@@ -1,9 +1,24 @@
|
|||||||
const router = require('express').Router();
|
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(`
|
||||||
|
<html>
|
||||||
|
<body>dev login</body>
|
||||||
|
<script>
|
||||||
|
var user = prompt('enter username');
|
||||||
|
if(user) window.location = '/dev/login?user=' + encodeURIComponent(user);
|
||||||
|
</script></html>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
res.cookie('nc_session', jwt.encode({username : req.query.user}, config.get('jwt_secret')));
|
||||||
|
return res.redirect('/');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const config = require('nconf');
|
||||||
const utils = require('./utils.js');
|
const utils = require('./utils.js');
|
||||||
const BrewData = require('./brew.data.js');
|
const BrewData = require('./brew.data.js');
|
||||||
const router = require('express').Router();
|
const router = require('express').Router();
|
||||||
@@ -18,7 +19,7 @@ const renderPage = (req, res, next) => {
|
|||||||
return vitreumRender('homebrew', templateFn, {
|
return vitreumRender('homebrew', templateFn, {
|
||||||
url : req.originalUrl,
|
url : req.originalUrl,
|
||||||
version : require('../package.json').version,
|
version : require('../package.json').version,
|
||||||
//TODO: add in login path?
|
loginPath : config.get('login_path'),
|
||||||
|
|
||||||
user : req.account && req.account.username,
|
user : req.account && req.account.username,
|
||||||
brews : req.brews,
|
brews : req.brews,
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const Middleware = {
|
|||||||
if(!creds
|
if(!creds
|
||||||
|| creds.name !== config.get('admin:user')
|
|| creds.name !== config.get('admin:user')
|
||||||
|| creds.pass !== config.get('admin:pass')){
|
|| creds.pass !== config.get('admin:pass')){
|
||||||
|
res.setHeader('WWW-Authenticate', 'Basic realm="example"');
|
||||||
return next(Error.noAdmin());
|
return next(Error.noAdmin());
|
||||||
}
|
}
|
||||||
return next();
|
return next();
|
||||||
|
|||||||
Reference in New Issue
Block a user