]> git.openstreetmap.org Git - osqa.git/blob - forum/middleware/request_utils.py
adding an example test for the user module. the fixture portion of this maybe not...
[osqa.git] / forum / middleware / request_utils.py
1 from forum.settings import MAINTAINANCE_MODE, APP_LOGO, APP_TITLE\r
2 from django.http import HttpResponseGone\r
3 from django.template.loader import render_to_string\r
4 \r
5 \r
6 class RequestUtils(object):\r
7     def __init__(self):\r
8         self.request = None\r
9 \r
10     def set_sort_method(self, sort):\r
11         self.request.session['questions_sort_method'] = sort\r
12 \r
13     def sort_method(self, default):\r
14         sort = self.request.REQUEST.get('sort', None)\r
15         if sort is None:\r
16             return self.request.session.get('questions_sort_method', default)\r
17         else:\r
18             self.set_sort_method(sort)\r
19             return sort\r
20 \r
21     def page_size(self, default):\r
22         pagesize = self.request.REQUEST.get('pagesize', None)\r
23         if pagesize is None:\r
24             return int(self.request.session.get('questions_pagesize', default))\r
25         else:\r
26             self.request.session['questions_pagesize'] = pagesize\r
27             return int(pagesize)\r
28 \r
29     def process_request(self, request):\r
30         if MAINTAINANCE_MODE.value is not None and isinstance(MAINTAINANCE_MODE.value.get('allow_ips', None), list):\r
31             ip = request.META['REMOTE_ADDR']\r
32 \r
33             if not ip in MAINTAINANCE_MODE.value['allow_ips']:\r
34                 return HttpResponseGone(render_to_string('410.html', {\r
35                     'message': MAINTAINANCE_MODE.value.get('message', ''),\r
36                     'app_logo': APP_LOGO,\r
37                     'app_title': APP_TITLE\r
38                 }))\r
39 \r
40         if request.session.get('redirect_POST_data', None):\r
41             request.POST = request.session.pop('redirect_POST_data')\r
42             request.META['REQUEST_METHOD'] = "POST"\r
43 \r
44         self.request = request\r
45         request.utils = self\r
46         return None