aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/decorators.py
diff options
context:
space:
mode:
authorBernhard Keller <keller_bernhard@web.de>2011-05-19 22:52:18 +0200
committerBernhard Keller <keller_bernhard@web.de>2011-05-19 22:52:18 +0200
commit3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39 (patch)
treefc639505538133a73809a0a231aa9f7665818016 /mediagoblin/decorators.py
parent44e3e917fbfc89409bac08d500c5a9246e0dc5f4 (diff)
downloadmediagoblin-3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39.tar.lz
mediagoblin-3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39.tar.xz
mediagoblin-3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39.zip
moved check for correct page values into decorator for view function
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)