]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/middleware/request_utils.py
Closing OSQA 201, Add a "site maintenance" switch and page.
[osqa.git] / forum / middleware / request_utils.py
index a96f372adea4b1e6b7248c24e89578b638f2f087..666956515c48be2618019406e439842fa556c2ae 100644 (file)
@@ -1,3 +1,7 @@
+from forum.settings import MAINTAINANCE_MODE, APP_LOGO, APP_TITLE\r
+from django.http import HttpResponseGone\r
+from django.template.loader import render_to_string\r
+\r
 \r
 class RequestUtils(object):\r
     def __init__(self):\r
@@ -23,6 +27,16 @@ class RequestUtils(object):
             return int(pagesize)\r
 \r
     def process_request(self, request):\r
+        if MAINTAINANCE_MODE.value is not None and isinstance(MAINTAINANCE_MODE.value.get('allow_ips', None), list):\r
+            ip = request.META['REMOTE_ADDR']\r
+\r
+            if not ip in MAINTAINANCE_MODE.value['allow_ips']:\r
+                return HttpResponseGone(render_to_string('410.html', {\r
+                    'message': MAINTAINANCE_MODE.value.get('message', ''),\r
+                    'app_logo': APP_LOGO,\r
+                    'app_title': APP_TITLE\r
+                }))\r
+\r
         self.request = request\r
         request.utils = self\r
         return None
\ No newline at end of file