Merge pull request #289 from CartoDB/issue-267
Call callback on invalid map store token for named maps
This commit is contained in:
commit
62dbce4311
@ -400,7 +400,9 @@ module.exports = function(redisPool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mapStore.load(layergroup_id, function(err, mapConfig) {
|
mapStore.load(layergroup_id, function(err, mapConfig) {
|
||||||
assert.ifError(err);
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
var authorized = me.templateMaps.isAuthorized(mapConfig.obj().template, auth_token);
|
var authorized = me.templateMaps.isAuthorized(mapConfig.obj().template, auth_token);
|
||||||
|
|
||||||
@ -475,7 +477,9 @@ module.exports = function(redisPool) {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
function checkSignAuthorized(err, signed_by){
|
function checkSignAuthorized(err, signed_by){
|
||||||
assert.ifError(err);
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! signed_by ) {
|
if ( ! signed_by ) {
|
||||||
// request not authorized by signer.
|
// request not authorized by signer.
|
||||||
|
@ -2045,6 +2045,68 @@ describe('template_api', function() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('named map nonexistent tokens', function() {
|
||||||
|
var username = 'localhost';
|
||||||
|
var templateHash = 'deadbeef';
|
||||||
|
var nonexistentToken = 'wadus';
|
||||||
|
|
||||||
|
function request(token) {
|
||||||
|
return {
|
||||||
|
url: '/api/v1/map/' + token + '/all/0/0/0.png',
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
host: username
|
||||||
|
},
|
||||||
|
encoding: 'binary'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var expectedResponse = {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json; charset=utf-8'
|
||||||
|
},
|
||||||
|
status: 400
|
||||||
|
};
|
||||||
|
|
||||||
|
function checkTileFn(done) {
|
||||||
|
return function checkTile(res, err) {
|
||||||
|
if (err) {
|
||||||
|
return done(err);
|
||||||
|
}
|
||||||
|
assert.deepEqual(JSON.parse(res.body), {
|
||||||
|
error: "Invalid or nonexistent map configuration token '" + nonexistentToken + "'"
|
||||||
|
});
|
||||||
|
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
it("returns an error for named map nonexistent tokens", function(done) {
|
||||||
|
|
||||||
|
var nonexistentNamedMapToken = username + '@' + templateHash + '@' + nonexistentToken;
|
||||||
|
|
||||||
|
assert.response(
|
||||||
|
server,
|
||||||
|
request(nonexistentNamedMapToken),
|
||||||
|
expectedResponse,
|
||||||
|
checkTileFn(done)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("returns an error for named map nonexistent tokens without template hash", function(done) {
|
||||||
|
|
||||||
|
var nonexistentNamedMapToken = username + '@' + nonexistentToken;
|
||||||
|
|
||||||
|
assert.response(
|
||||||
|
server,
|
||||||
|
request(nonexistentNamedMapToken),
|
||||||
|
expectedResponse,
|
||||||
|
checkTileFn(done)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
after(function(done) {
|
after(function(done) {
|
||||||
|
|
||||||
// This test will add map_style records, like
|
// This test will add map_style records, like
|
||||||
|
Loading…
Reference in New Issue
Block a user