summaryrefslogtreecommitdiffstats
path: root/ipsilon/util
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-10-10 13:34:00 -0400
committerPatrick Uiterwijk <puiterwijk@redhat.com>2014-10-24 18:03:28 +0200
commitfe50fd3423969fca640cc35b32678bab5fd491cb (patch)
treef3f3c81553934cdf89d5578018b982744837301d /ipsilon/util
parent66361edf21ca83ad9e34177436f32e792fd8b893 (diff)
downloadipsilon-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-xipsilon/util/page.py8
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