aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/decorators.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-05-19 22:34:57 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-05-19 22:34:57 -0500
commitaf4d0b5cb0de2cbc9dd78a791fd77dab3dbddaa5 (patch)
tree3d5399b6d7c036c4cd78db6645eb72ed35123b39 /mediagoblin/decorators.py
parenta67fec8177c09c4e74ce7f4301b88f4e7ea6e658 (diff)
parent3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39 (diff)
downloadmediagoblin-af4d0b5cb0de2cbc9dd78a791fd77dab3dbddaa5.tar.lz
mediagoblin-af4d0b5cb0de2cbc9dd78a791fd77dab3dbddaa5.tar.xz
mediagoblin-af4d0b5cb0de2cbc9dd78a791fd77dab3dbddaa5.zip
Merge remote branch 'remotes/hanaku/pagination'
Conflicts: mediagoblin/user_pages/views.py
Diffstat (limited to 'mediagoblin/decorators.py')
-rw-r--r--mediagoblin/decorators.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index 1774ce4e..161d99ff 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -44,3 +44,22 @@ def require_active_login(controller):
return controller(request, *args, **kwargs)
return _make_safe(new_controller_func, controller)
+
+
+def uses_pagination(controller):
+ """
+ Check request GET 'page' key for wrong values
+ """
+ def wrapper(request, *args, **kwargs):
+ try:
+ page = int(request.str_GET['page'])
+ if page < 0:
+ return exc.HTTPNotFound()
+ except ValueError:
+ return exc.HTTPNotFound()
+ except KeyError:
+ request.str_GET['page'] = 1
+
+ return controller(request, *args, **kwargs)
+
+ return _make_safe(wrapper,controller)