From 762dce785360613b17d348f09e4e9813d7e0423e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Mart=C3=ADn?= Date: Fri, 22 Jun 2018 17:31:45 +0200 Subject: [PATCH] adding api key to tiles base urls --- lib/cartodb/api/middlewares/layergroup-metadata.js | 4 ++-- lib/cartodb/utils/layergroup-metadata.js | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/cartodb/api/middlewares/layergroup-metadata.js b/lib/cartodb/api/middlewares/layergroup-metadata.js index bbb1fbe4..a9cec443 100644 --- a/lib/cartodb/api/middlewares/layergroup-metadata.js +++ b/lib/cartodb/api/middlewares/layergroup-metadata.js @@ -1,6 +1,6 @@ module.exports = function setMetadataToLayergroup (layergroupMetadata, includeQuery) { return function setMetadataToLayergroupMiddleware (req, res, next) { - const { user, mapConfig, analysesResults = [], context } = res.locals; + const { user, mapConfig, analysesResults = [], context, api_key: userApiKey } = res.locals; const layergroup = res.body; layergroupMetadata.addDataviewsAndWidgetsUrls(user, layergroup, mapConfig.obj()); @@ -8,7 +8,7 @@ module.exports = function setMetadataToLayergroup (layergroupMetadata, includeQu layergroupMetadata.addTurboCartoContextMetadata(layergroup, mapConfig.obj(), context); layergroupMetadata.addAggregationContextMetadata(layergroup, mapConfig.obj(), context); layergroupMetadata.addDateWrappingMetadata (layergroup, mapConfig.obj()); - layergroupMetadata.addTileJsonMetadata(layergroup, user, mapConfig); + layergroupMetadata.addTileJsonMetadata(layergroup, user, mapConfig, userApiKey); next(); }; diff --git a/lib/cartodb/utils/layergroup-metadata.js b/lib/cartodb/utils/layergroup-metadata.js index 41c3c9af..22f7c8f3 100644 --- a/lib/cartodb/utils/layergroup-metadata.js +++ b/lib/cartodb/utils/layergroup-metadata.js @@ -84,16 +84,18 @@ module.exports = class LayergroupMetadata { } } - addTileJsonMetadata (layergroup, user, mapconfig) { + addTileJsonMetadata (layergroup, user, mapconfig, userApiKey = null) { const isVectorOnlyMapConfig = mapconfig.isVectorOnlyMapConfig(); let hasMapnikLayers = false; + const apiKey = userApiKey ? `?api_key=${userApiKey}` : ''; layergroup.metadata.layers.forEach((layerMetadata, index) => { const layerId = mapconfig.getLayerId(index); - const rasterResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.png`; + const rasterResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.png${apiKey}`; + if (mapconfig.layerType(index) === 'mapnik') { hasMapnikLayers = true; - const vectorResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.mvt`; + const vectorResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.mvt${apiKey}`; const layerTilejson = { vector: this._getTilejson(this.resourceLocator.getTileUrls(user, vectorResource)) }; @@ -101,7 +103,7 @@ module.exports = class LayergroupMetadata { let grids = null; const layer = mapconfig.getLayer(index); if (layer.options.interactivity) { - const gridResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.grid.json`; + const gridResource = `${layergroup.layergroupid}/${layerId}/{z}/{x}/{y}.grid.json${apiKey}`; grids = this.resourceLocator.getTileUrls(user, gridResource); } layerTilejson.raster = this._getTilejson( @@ -121,14 +123,14 @@ module.exports = class LayergroupMetadata { const url = {}; if (hasMapnikLayers) { - const vectorResource = `${layergroup.layergroupid}/{z}/{x}/{y}.mvt`; + const vectorResource = `${layergroup.layergroupid}/{z}/{x}/{y}.mvt${apiKey}`; tilejson.vector = this._getTilejson( this.resourceLocator.getTileUrls(user, vectorResource) ); url.vector = this._getTemplateUrl(this.resourceLocator.getTemplateUrls(user, vectorResource)); if (!isVectorOnlyMapConfig) { - const rasterResource = `${layergroup.layergroupid}/{z}/{x}/{y}.png`; + const rasterResource = `${layergroup.layergroupid}/{z}/{x}/{y}.png${apiKey}`; tilejson.raster = this._getTilejson( this.resourceLocator.getTileUrls(user, rasterResource) );