diff options
author | Simo Sorce <simo@redhat.com> | 2014-10-10 13:34:00 -0400 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-10-24 18:03:28 +0200 |
commit | fe50fd3423969fca640cc35b32678bab5fd491cb (patch) | |
tree | f3f3c81553934cdf89d5578018b982744837301d /ipsilon/util | |
parent | 66361edf21ca83ad9e34177436f32e792fd8b893 (diff) | |
download | ipsilon-fe50fd3423969fca640cc35b32678bab5fd491cb.tar.gz ipsilon-fe50fd3423969fca640cc35b32678bab5fd491cb.tar.xz ipsilon-fe50fd3423969fca640cc35b32678bab5fd491cb.zip |
Handle invalid/expired transactions gracefully
Return a useful error page every time and invalid or expired
transaction is requested, instead of ending up with an internal
backtrace and an ugly 500 error.
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/util')
-rwxr-xr-x | ipsilon/util/page.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ipsilon/util/page.py b/ipsilon/util/page.py index f98b2d9..213f945 100755 --- a/ipsilon/util/page.py +++ b/ipsilon/util/page.py @@ -19,6 +19,7 @@ from ipsilon.util.log import Log from ipsilon.util.user import UserSession +from ipsilon.util.trans import Transaction from urllib import unquote import cherrypy @@ -113,4 +114,11 @@ class Page(Log): def del_subtree(self, name): del self.__dict__[name] + def get_valid_transaction(self, provider, **kwargs): + try: + return Transaction(provider, **kwargs) + except ValueError: + msg = 'Transaction expired, or cookies not available' + raise cherrypy.HTTPError(401, msg) + exposed = True |