Proper fallback from referer to REQUEST_URI
authorSimo Sorce <simo@redhat.com>
Thu, 12 Mar 2015 17:51:04 +0000 (13:51 -0400)
committerSimo Sorce <simo@redhat.com>
Thu, 12 Mar 2015 18:48:11 +0000 (14:48 -0400)
If the referer is present but does not contain a transaction ID we still
need to fallback to the REQUEST_URI. Fix the code to check the url and
then fallback to REQUEST_URI rathe than decide upfront merely on the
fact a referer is available.

https://fedorahosted.org/ipsilon/ticket/74

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Nathan Kinder <nkinder@redhat.com>
ipsilon/util/page.py

index 50585ca..7e88534 100644 (file)
@@ -143,9 +143,11 @@ class Page(Endpoint):
                 url = None
                 if 'referer' in cherrypy.request.headers:
                     url = cherrypy.request.headers['referer']
-                elif 'REQUEST_URI' in cherrypy.request.wsgi_environ:
+                    r = urlparse(unquote(url))
+                    if r.query:
+                        tid = t.find_tid(parse_qs(r.query))
+                if not tid and 'REQUEST_URI' in cherrypy.request.wsgi_environ:
                     url = cherrypy.request.wsgi_environ['REQUEST_URI']
-                if url:
                     r = urlparse(unquote(url))
                     if r.query:
                         tid = t.find_tid(parse_qs(r.query))