diff options
author | Bernhard Keller <keller_bernhard@web.de> | 2011-05-19 22:52:18 +0200 |
---|---|---|
committer | Bernhard Keller <keller_bernhard@web.de> | 2011-05-19 22:52:18 +0200 |
commit | 3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39 (patch) | |
tree | fc639505538133a73809a0a231aa9f7665818016 /mediagoblin/decorators.py | |
parent | 44e3e917fbfc89409bac08d500c5a9246e0dc5f4 (diff) | |
download | mediagoblin-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.py | 19 |
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) |