From c23d71424fde4ecb39dcea410dc74494462c8b63 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 24 Jan 2015 03:43:20 -0400 Subject: [PATCH] Add middleware to allow rewriting the status code of ajax responses' redirects --- mayan/apps/common/middleware/ajax_redirect.py | 12 ++++++++++++ mayan/settings/base.py | 1 + 2 files changed, 13 insertions(+) create mode 100644 mayan/apps/common/middleware/ajax_redirect.py diff --git a/mayan/apps/common/middleware/ajax_redirect.py b/mayan/apps/common/middleware/ajax_redirect.py new file mode 100644 index 0000000000..5d8d8935a2 --- /dev/null +++ b/mayan/apps/common/middleware/ajax_redirect.py @@ -0,0 +1,12 @@ +from __future__ import unicode_literals + +from django.conf import settings +from django.http import HttpResponseRedirect + + +class AjaxRedirect(object): + def process_response(self, request, response): + if request.is_ajax(): + if type(response) == HttpResponseRedirect: + response.status_code = getattr(settings, 'AJAX_REDIRECT_CODE', 302) + return response diff --git a/mayan/settings/base.py b/mayan/settings/base.py index 91d313946a..009f9f6456 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -120,6 +120,7 @@ MIDDLEWARE_CLASSES = ( 'common.middleware.login_required_middleware.LoginRequiredMiddleware', 'permissions.middleware.permission_denied_middleware.PermissionDeniedMiddleware', 'pagination.middleware.PaginationMiddleware', + 'common.middleware.ajax_redirect.AjaxRedirect', ) ROOT_URLCONF = 'mayan.urls'