feat: add branded error pages
This commit is contained in:
@@ -5,17 +5,37 @@ from django.contrib import messages
|
||||
from django.contrib.auth import logout
|
||||
from django.contrib.messages.api import MessageFailure
|
||||
from django.core.cache import cache
|
||||
from django.http import HttpResponse
|
||||
from django.core.exceptions import PermissionDenied, SuspiciousOperation
|
||||
from django.http import Http404, HttpResponse
|
||||
from django.shortcuts import redirect, render
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from .branding import is_trial_expired, is_trial_mode_enabled
|
||||
from .error_views import bad_request, not_found, permission_denied, server_error
|
||||
from .logging_utils import clear_request_id, set_request_id
|
||||
from .roles import ROLE_PLATFORM_OWNER, get_user_role_key
|
||||
|
||||
|
||||
class FriendlyExceptionMiddleware:
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
if not settings.FORCE_BRANDED_ERROR_PAGES:
|
||||
return self.get_response(request)
|
||||
|
||||
try:
|
||||
return self.get_response(request)
|
||||
except Http404 as exc:
|
||||
return not_found(request, exc)
|
||||
except PermissionDenied as exc:
|
||||
return permission_denied(request, exc)
|
||||
except SuspiciousOperation as exc:
|
||||
return bad_request(request, exc)
|
||||
|
||||
|
||||
class RequestIDMiddleware:
|
||||
HEADER_NAME = 'X-Request-ID'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user