Fix renderLocations to accept more parameters from host

Amend renderLocations to pass more host parameters into the custom locations to match the requirements set for the default location. This will apply all parameters set in the UI to all custom locations.
This commit is contained in:
vipergts450 2021-05-06 22:29:21 -04:00 committed by GitHub
parent e4e94d5be0
commit 6a46e88f8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -136,6 +136,8 @@ const internalNginx = {
* @returns {Promise}
*/
renderLocations: (host) => {
// logger.info('host = ' + JSON.stringify(host, null, 2));
return new Promise((resolve, reject) => {
let template;
@ -153,7 +155,12 @@ const internalNginx = {
const locationRendering = async () => {
for (let i = 0; i < host.locations.length; i++) {
let locationCopy = Object.assign({}, host.locations[i]);
let locationCopy = Object.assign({}, {access_list_id : host.access_list_id}, {certificate_id : host.certificate_id},
{ssl_forced : host.ssl_forced}, {caching_enabled : host.caching_enabled},
{block_exploits : host.block_exploits}, {allow_websocket_upgrade : host.allow_websocket_upgrade},
{http2_support : host.http2_support}, {hsts_enabled : host.hsts_enabled},
{hsts_subdomains : host.hsts_subdomains}, {access_list : host.access_list},
{certificate : host.certificate}, host.locations[i]);
if (locationCopy.forward_host.indexOf('/') > -1) {
const splitted = locationCopy.forward_host.split('/');
@ -162,12 +169,16 @@ const internalNginx = {
locationCopy.forward_path = `/${splitted.join('/')}`;
}
// logger.info('locationCopy = ' + JSON.stringify(locationCopy, null, 2));
// eslint-disable-next-line
renderedLocations += await renderer.parseAndRender(template, locationCopy);
}
};
locationRendering().then(() => resolve(renderedLocations));
});
},
@ -183,6 +194,8 @@ const internalNginx = {
logger.info('Generating ' + host_type + ' Config:', host);
}
// logger.info('host = ' + JSON.stringify(host, null, 2));
let renderEngine = new Liquid({
root: __dirname + '/../templates/'
});
@ -210,6 +223,7 @@ const internalNginx = {
}
if (host.locations) {
// logger.info ('host.locations = ' + JSON.stringify(host.locations, null, 2));
origLocations = [].concat(host.locations);
locationsPromise = internalNginx.renderLocations(host).then((renderedLocations) => {
host.locations = renderedLocations;