diff --git a/lib/cartodb/controllers/named_maps.js b/lib/cartodb/controllers/named_maps.js index b25bf1ba..f4e5ee90 100644 --- a/lib/cartodb/controllers/named_maps.js +++ b/lib/cartodb/controllers/named_maps.js @@ -142,7 +142,7 @@ NamedMapsController.prototype.staticMap = function(req, res) { namedMapProvider = _namedMapProvider; - self.prepareLayerFilterFromPreviewLayers(req.params, namedMapProvider, this); + self.prepareLayerFilterFromPreviewLayers(cdbUser, req, namedMapProvider, this); }, function prepareImageOptions(err) { assert.ifError(err); @@ -190,7 +190,8 @@ NamedMapsController.prototype.staticMap = function(req, res) { ); }; -NamedMapsController.prototype.prepareLayerFilterFromPreviewLayers = function (params, namedMapProvider, callback) { +NamedMapsController.prototype.prepareLayerFilterFromPreviewLayers = function (cdbUser, req, namedMapProvider, callback) { + var self = this; namedMapProvider.getTemplate(function (err, template) { if (err) { return callback(err); @@ -209,12 +210,22 @@ NamedMapsController.prototype.prepareLayerFilterFromPreviewLayers = function (pa } }); - if (layerVisibilityFilter.length) { - // overwrite 'all' default filter - params.layer = layerVisibilityFilter.join(','); + if (!layerVisibilityFilter.length) { + return callback(); } - callback(); + // overwrites 'all' default filter + req.params.layer = layerVisibilityFilter.join(','); + + // recreates the provider + self.namedMapProviderCache.get( + cdbUser, + req.params.template_id, + req.query.config, + req.query.auth_token, + req.params, + callback + ); }); };