Source code for core.middleware
"""Module containing core app's custom middlewares."""
from django_minify_html.middleware import MinifyHtmlMiddleware
from utils.constants.users import SUBSCRIPTION_TIER_PERMISSIONS
[docs]
class CustomMinifyHtmlMiddleware(MinifyHtmlMiddleware):
"""Custom configuration for django-minify-html middleware."""
minify_args = MinifyHtmlMiddleware.minify_args | {
"minify_css": False,
"minify_js": False,
"minify_doctype": False,
"allow_removing_spaces_between_attributes": False,
"allow_noncompliant_unquoted_attribute_values": False,
"keep_closing_tags": True,
}
[docs]
class CustomUserHeaderMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
header = "user"
if (
request.user.is_authenticated
and request.user.profile
and request.user.profile.permission
>= SUBSCRIPTION_TIER_PERMISSIONS.get("Intro")
):
header = "other"
response["X-User-Header"] = header
return response