]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/http_responses.py
Allow for missing content types
[osqa.git] / forum / http_responses.py
index 42bef588814b98c3437917470a6e71882ae166d8..2ff4866fdb89a89e9efea173bb47e1f3e468ca9c 100644 (file)
@@ -1,15 +1,41 @@
 from django.http import HttpResponse
 from django.template.loader import render_to_string
+from django.template import RequestContext
 
 from forum import settings
 
 class HttpResponseServiceUnavailable(HttpResponse):
     def __init__(self, message):
-        super(HttpResponseServiceUnavailable, self).__init__(content=render_to_string('503.html', {
-        'message': message,
-        'app_logo': settings.APP_LOGO,
-        'app_title': settings.APP_TITLE
-        }), status=503)
+        super(HttpResponseServiceUnavailable, self).__init__(
+            content=render_to_string('503.html', {
+                'message': message,
+                'app_logo': settings.APP_LOGO,
+                'app_title': settings.APP_TITLE
+            }), status=503)
 
 class HttpResponseUnauthorized(HttpResponse):
-    pass
\ No newline at end of file
+    def __init__(self, request):
+        if request.user.is_authenticated():
+            super(HttpResponseUnauthorized, self).__init__(
+                content=render_to_string('403.html', context_instance=RequestContext(request)),
+                status=403
+            )
+        else:
+            super(HttpResponseUnauthorized, self).__init__(
+                content=render_to_string('401.html', context_instance=RequestContext(request)),
+                status=401
+            )
+
+class HttpResponseNotFound(HttpResponse):
+    def __init__(self, request):
+        super(HttpResponseNotFound, self).__init__(
+            content=render_to_string('404.html', context_instance=RequestContext(request)),
+            status=404
+        )
+
+class HttpResponseIntServerError(HttpResponse):
+    def __init__(self, request):
+        super(HttpResponseIntServerError, self).__init__(
+            content=render_to_string('500.html', context_instance=RequestContext(request)),
+            status=500
+        )
\ No newline at end of file