diff --git a/swh/web/common/middlewares.py b/swh/web/common/middlewares.py --- a/swh/web/common/middlewares.py +++ b/swh/web/common/middlewares.py @@ -7,6 +7,10 @@ from htmlmin import minify import sentry_sdk +from django.middleware.cache import ( + FetchFromCacheMiddleware as DjangoFetchFromCacheMiddleware, +) + from swh.web.common.exc import handle_view_exception from swh.web.common.utils import prettify_html @@ -89,3 +93,15 @@ def process_exception(self, request, exception): return handle_view_exception(request, exception) + + +class FetchFromCacheMiddleware(DjangoFetchFromCacheMiddleware): + """ + Django middleware to disable per-site caching for authenticated users. + """ + + def process_request(self, request): + if request.user.is_authenticated: + return None + else: + return super().process_request(request) diff --git a/swh/web/settings/production.py b/swh/web/settings/production.py --- a/swh/web/settings/production.py +++ b/swh/web/settings/production.py @@ -18,7 +18,7 @@ MIDDLEWARE += [ "swh.web.common.middlewares.HtmlMinifyMiddleware", - "django.middleware.cache.FetchFromCacheMiddleware", + "swh.web.common.middlewares.FetchFromCacheMiddleware", ] if swh_web_config.get("throttling", {}).get("cache_uri"):