|
@@ -4,27 +4,31 @@ from django.utils.translation import ugettext as _
|
|
|
|
|
|
from misago.admin.views.errorpages import admin_csrf_failure, admin_error_page
|
|
|
|
|
|
-from .utils import is_request_to_misago
|
|
|
+from .utils import get_exception_message, is_request_to_misago
|
|
|
|
|
|
|
|
|
-def _ajax_error(code=406, message=None):
|
|
|
- return JsonResponse({'detail': message}, status=code)
|
|
|
+def _ajax_error(code, exception=None, default_message=None):
|
|
|
+ return JsonResponse({
|
|
|
+ 'detail': get_exception_message(exception, default_message),
|
|
|
+ }, status=code)
|
|
|
|
|
|
|
|
|
@admin_error_page
|
|
|
-def _error_page(request, code, message=None):
|
|
|
+def _error_page(request, code, exception=None, default_message=None):
|
|
|
request.frontend_context.update({
|
|
|
'CURRENT_LINK': 'misago:error-%s' % code,
|
|
|
})
|
|
|
|
|
|
return render(
|
|
|
request, 'misago/errorpages/%s.html' % code, {
|
|
|
- 'message': message,
|
|
|
+ 'message': get_exception_message(exception, default_message),
|
|
|
}, status=code
|
|
|
)
|
|
|
|
|
|
|
|
|
-def banned(request, ban):
|
|
|
+def banned(request, exception):
|
|
|
+ ban = exception.ban
|
|
|
+
|
|
|
request.frontend_context.update({
|
|
|
'MESSAGE': ban.get_serialized_message(),
|
|
|
'CURRENT_LINK': 'misago:error-banned',
|
|
@@ -37,18 +41,18 @@ def banned(request, ban):
|
|
|
)
|
|
|
|
|
|
|
|
|
-def permission_denied(request, message=None, exception=None):
|
|
|
+def permission_denied(request, exception):
|
|
|
if request.is_ajax():
|
|
|
- return _ajax_error(403, message or _("Permission denied."))
|
|
|
+ return _ajax_error(403, exception, _("Permission denied."))
|
|
|
else:
|
|
|
- return _error_page(request, 403, message)
|
|
|
+ return _error_page(request, 403, exception)
|
|
|
|
|
|
|
|
|
-def page_not_found(request, exception=None):
|
|
|
+def page_not_found(request, exception):
|
|
|
if request.is_ajax():
|
|
|
- return _ajax_error(404, "Not found.")
|
|
|
+ return _ajax_error(404, exception, "Not found.")
|
|
|
else:
|
|
|
- return _error_page(request, 404)
|
|
|
+ return _error_page(request, 404, exception)
|
|
|
|
|
|
|
|
|
@admin_csrf_failure
|
|
@@ -69,7 +73,7 @@ def not_allowed(request):
|
|
|
def shared_403_exception_handler(f):
|
|
|
def page_decorator(request, *args, **kwargs):
|
|
|
if is_request_to_misago(request):
|
|
|
- return permission_denied(request)
|
|
|
+ return permission_denied(request, *args, **kwargs)
|
|
|
else:
|
|
|
return f(request, *args, **kwargs)
|
|
|
|
|
@@ -79,7 +83,7 @@ def shared_403_exception_handler(f):
|
|
|
def shared_404_exception_handler(f):
|
|
|
def page_decorator(request, *args, **kwargs):
|
|
|
if is_request_to_misago(request):
|
|
|
- return page_not_found(request)
|
|
|
+ return page_not_found(request, *args, **kwargs)
|
|
|
else:
|
|
|
return f(request, *args, **kwargs)
|
|
|
|