diff --git a/server.js b/server.js index 37e55b0d..67e25813 100644 --- a/server.js +++ b/server.js @@ -18,7 +18,8 @@ const history = require('connect-history-api-fallback'); /* Kick of some basic checks */ require('./services/update-checker'); // Checks if there are any updates available, prints message -require('./services/config-validator'); // Include and kicks off the config file validation script +let config = {}; // setup the config +config = require('./services/config-validator'); // Include and kicks off the config file validation script /* Include route handlers for API endpoints */ const statusCheck = require('./services/status-check'); // Used by the status check feature, uses GET @@ -94,6 +95,7 @@ const app = express() .use(ENDPOINTS.save, method('POST', (req, res) => { try { saveConfig(req.body, (results) => { res.end(results); }); + config = req.body.config; // update the config } catch (e) { printWarning('Error writing config file to disk', e); res.end(JSON.stringify({ success: false, message: e })); @@ -128,7 +130,7 @@ const app = express() // GET endpoint to return user info .use(ENDPOINTS.getUser, (req, res) => { try { - const user = getUser(req); + const user = getUser(config, req); res.end(JSON.stringify(user)); } catch (e) { res.end(JSON.stringify({ success: false, message: e })); diff --git a/services/config-validator.js b/services/config-validator.js index 48c1e827..d7377679 100644 --- a/services/config-validator.js +++ b/services/config-validator.js @@ -99,10 +99,11 @@ const printFileReadError = (e) => { }; try { // Try to open and parse the YAML file - const config = yaml.load(fs.readFileSync('./public/conf.yml', 'utf8')); + config = yaml.load(fs.readFileSync('./public/conf.yml', 'utf8')); validate(config); } catch (e) { // Something went very wrong... setIsValidVariable(false); logToConsole(bigError()); printFileReadError(e); } +module.exports = config; \ No newline at end of file diff --git a/services/get-user.js b/services/get-user.js index bef1e5f8..61c85624 100644 --- a/services/get-user.js +++ b/services/get-user.js @@ -1,5 +1,11 @@ -module.exports = (req) => { - const userHeader = "Remote-User"; - console.log("Running Server Side", req.headers[userHeader.toLowerCase()]); // eslint-disable-line no-console - return { "success": true, "user": req.headers[userHeader.toLowerCase()] }; +module.exports = (config, req) => { + try { + if ( config.appConfig.auth.enableHeaderAuth ) { + const userHeader = config.appConfig.auth.headerAuth.userHeader; + return { "success": true, "user": req.headers[userHeader.toLowerCase()] }; + } + } catch (e) { + console.warn("Error get-user: ", e); + return { 'success': false }; + } }; \ No newline at end of file