[Zope] TOC ondelete event

jbusato at libero.it jbusato at libero.it
Sat Jul 28 08:51:04 EDT 2007


Hi Jonathan,
I'm sure that what you said is right but
1) I tried to change my script performing a manage_add that should be performed after timeout. Nothing happened.
2) However the only way I see is:
  a- keep the session id in the request
  b- if request.savedsessionid<>session.id then alert "session timed out"

thank you for your help

---------- Initial Header -----------

>From      : "Jonathan" dev101 at magma.ca
To          : jbusato at libero.it,"zope" zope at zope.org
Cc          : 
Date      : Sat, 28 Jul 2007 08:17:08 -0400
Subject : Re: [Zope] TOC ondelete event







> 
> ----- Original Message ----- 
> From: <jbusato at libero.it>
> To: "zope" <zope at zope.org>
> Sent: Saturday, July 28, 2007 7:15 AM
> Subject: [Zope] TOC ondelete event
> 
> > I'm setting up a Session data Manager with a Transient Object Container 
> > that call a python script session_delete?
> >(sdo,toc).
> >
> > I want to show a message like ("your session was terminated due 
> > inactivity") so I tried to write this
> >
> > #PYTHON SCRIPT (NOT EXTERNAL) session_delete(sdo,toc)
> > request = container.REQUEST
> > RESPONSE =  request.RESPONSE
> > RESPONSE.redirect(container.mywarningpage.absolute_url())
> >
> > Launched manually it gives me no errors but when the session is terminated 
> > only "onadd" script make effects.
> >
> > Are there not permitted operations in this case?
> > Could anyone explain me where I mistake or another way to do tha same 
> > thing? (AFAIK sdo parameter is the old
> > session so I can't store any info in it)
> 
> The TOC invokes your script when the "data object timeout value" is reached 
> (eg. if the timeout value is set for 5 minutes, then the TOC will invoke the 
> "script to call when objects are deleted" when there has been no activity 
> for 5 minutes).
> 
> The TOC invokes the delete script as a result of the timeout, not because of 
> an incoming user request and therefore there is no user to be 'redirected'. 
> You are trying to push out a message to a user that is no longer "there".
> 
> You need to revise your application logic so that if a user comes back 
> (makes another request) after the 'timeout' they receive your warning 
> message.
> 
> hth
> 
> Jonathan
> 
> 


------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta l’estate e telefoni senza canone Telecom
http://click.libero.it/infostrada



More information about the Zope mailing list