summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-09-04 15:53:39 +0200
committerDan McGee <dan@archlinux.org>2012-09-04 15:53:39 +0200
commit5df83a38282d8ddbc653859914eb49cad1c30494 (patch)
tree319b837994eacc7b543712c719c2a26af29bcd6d
parent79b0ff49bd3319133502243ded4506fc2d56cd9e (diff)
downloadarchweb-5df83a38282d8ddbc653859914eb49cad1c30494.tar.gz
archweb-5df83a38282d8ddbc653859914eb49cad1c30494.tar.xz
Add a 'format_http_headers' method
This takes a HttpRequest object and grabs the HTTP headers out of it and pretty-prints them in a familiar format. This will come in handy if we want to log these when creating package FlagRequests, releng Tests, etc. in addition to already logging the IP address of the user posting the request. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--main/utils.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/main/utils.py b/main/utils.py
index 0b6849a..d12e5e1 100644
--- a/main/utils.py
+++ b/main/utils.py
@@ -53,6 +53,16 @@ def clear_cache_function(func, args, kwargs):
key = cache_function_key(func, args, kwargs)
cache.delete(key)
+
+def format_http_headers(request):
+ headers = sorted((k, v) for k, v in request.META.items()
+ if k.startswith('HTTP_'))
+ data = []
+ for k, v in headers:
+ data.extend([k[5:].replace('_', '-').title(), ': ', v, '\n'])
+ return ''.join(data)
+
+
# utility to make a pair of django choices
make_choice = lambda l: [(str(m), str(m)) for m in l]