[Zope] RESPONSE.redirect not working

Andrew Hedges andrew at clearwired.com
Tue May 23 18:24:19 EDT 2006


I'm at my wit's end.  Any help is appreciated.  Yes, I have worn  
Google out trying to figure this out.

In my (yeah, yeah, I know) DTML method, I have structured things like  
so:

    <dtml-call pyCheckSession> <-- a Python script that checks  
whether the user is allowed to see the page
    <dtml-var mvp_header> <-- header include
    ...
    Sundry HTML/DTML
    ...

I am running Zope 2.9.2 and Python 2.4.2 on Mac OS X 10.4.6.  I have  
the stock session manager objects installed (Transient Object  
Container, Session Data Manager, and Browser Id Manager).

When I am not logged in and I go to an unauthorized page, the  
response location appears to get set as desired, but the redirect  
does not happen.  Instead, the page from the original URL still  
renders (not very secure, I'd say).

The URL I hit was:

    http://localhost:8080/www/nmact/MVP/website/mymvp_html

Here are the relevant bits from pyCheckSession:

request = container.REQUEST
RESPONSE = request.RESPONSE

session = request.SESSION
url = ''

if len(session.keys()) == 0:
    "User is not logged in"
    url = '/www/nmact/MVP/website/login_html'

if url <> '':
	"If we have need to, bump the user out"
	RESPONSE.redirect(url)

Here are the contents of the response object:

    HTTP/1.1 302 Moved Temporarily
    Server: Zope/(Zope 2.9.2-, python 2.4.2, darwin) ZServer/1.1
    Date: Tue, 23 May 2006 22:05:51 GMT
    Content-Length: 0
    Location: /www/nmact/MVP/website/login_html

To reiterate, the response location appears to get set to login_html,  
but the content of mymvp_html still renders.  What am I doing wrong?

TIA,
-Andrew
-----
andrew at clearwired.com / http://clearwired.com


More information about the Zope mailing list