diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index 9d707a533..4b9d5c7fe 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -190,6 +190,7 @@ MIDDLEWARE = [ "waffle.middleware.WaffleMiddleware", "registrar.registrar_middleware.CheckUserProfileMiddleware", "registrar.registrar_middleware.CheckPortfolioMiddleware", + "registrar.registrar_middleware.ANDIMiddleware", ] # application object used by Django’s built-in servers (e.g. `runserver`) diff --git a/src/registrar/registrar_middleware.py b/src/registrar/registrar_middleware.py index 2af331bc9..2fcaa78b4 100644 --- a/src/registrar/registrar_middleware.py +++ b/src/registrar/registrar_middleware.py @@ -8,6 +8,7 @@ from django.urls import reverse from django.http import HttpResponseRedirect from registrar.models.user import User from waffle.decorators import flag_is_active +from django.utils.deprecation import MiddlewareMixin from registrar.models.utility.generic_helper import replace_url_queryparams @@ -157,3 +158,17 @@ class CheckPortfolioMiddleware: return HttpResponseRedirect(portfolio_redirect) return None + + +class ANDIMiddleware(MiddlewareMixin): + def process_response(self, request, response): + # Check if the response content type is HTML + if "text/html" in response.get("Content-Type", ""): + andi_script = """ + + """ + # Inject the ANDI script before the closing tag + content = response.content.decode("utf-8") + content = content.replace("", f"{andi_script}") + response.content = content.encode("utf-8") + return response