From f3174de9e29cd9ef8d850083ecc93dfff1beea3f Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Mon, 18 May 2015 19:12:42 +0100 Subject: [PATCH] Cache control for private blogs no issue - private blogs need to not be cached, so that the cookie is always checked --- core/server/middleware/cache-control.js | 6 +++++- core/test/unit/middleware/cache-control_spec.js | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/core/server/middleware/cache-control.js b/core/server/middleware/cache-control.js index e2020023f4..a54dd609bc 100644 --- a/core/server/middleware/cache-control.js +++ b/core/server/middleware/cache-control.js @@ -23,7 +23,11 @@ cacheControl = function (options) { return function cacheControlHeaders(req, res, next) { if (output) { - res.set({'Cache-Control': output}); + if (res.isPrivateBlog) { + res.set({'Cache-Control': profiles['private']}); + } else { + res.set({'Cache-Control': output}); + } } next(); }; diff --git a/core/test/unit/middleware/cache-control_spec.js b/core/test/unit/middleware/cache-control_spec.js index f4ae5a9140..cf910d56a8 100644 --- a/core/test/unit/middleware/cache-control_spec.js +++ b/core/test/unit/middleware/cache-control_spec.js @@ -77,5 +77,18 @@ describe('Middleware: cacheControl', function () { }); }); }); + + it('will override public with private for private blogs', function (done) { + res.isPrivateBlog = true; + middleware.cacheControl('public')(null, res, function (a) { + should.not.exist(a); + res.set.calledOnce.should.be.true; + res.set.calledWith({ + 'Cache-Control': + 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0' + }); + done(); + }); + }); }); });