From hans.kramer at xs4all.nl Thu Oct 9 19:53:26 2008 From: hans.kramer at xs4all.nl (Hans Kramer) Date: Thu, 09 Oct 2008 10:53:26 +0200 Subject: [albatross-users] SimpleSessionApp, and session time out Message-ID: <1223542406.6618.57.camel@cancun.hanskramer.com> Dear all, I am new to Albatross and Python Webframe works. Moreover, I am not a seasoned web developer and in the past I really hated working with this kind of technology. However, I have to say that I really like what you guys have done with Albatross. I am excited. I have a few questions and half baked solutions I want to have some feed back on. First of all I would like to use the SimpleSessionApp class instead of the RandomModularSessionApp class. (I tend to like to work with classes) Perhaps this is a mistake, just be frank. A) Then I want to have a link in my template files for people to log out. Something like this: (I also need these kind of links for other purposes, I might come on in a later e-mail) Log Out Clicking on it, the frame work should execute: class LogoutPage: name = 'logout' def page_process(self, context): context.remove_session() context.set_page('login') Currently that didn't work. I found a solution by making some small changes. First I edited in app.py the run method of class Application. Just before self.load_page(ctx) I put the following command: if os.environ.has_key('PATH_INFO'): ctx.locals.__page__ = os.environ['PATH_INFO'][1:] This works fine, except that in the next page the URI is rendered as /cgi-bin/application.py/logout and the user cannot log in. I fixed this by editing cgiapp.py and changing def get_uri(self): return self.get_param('REQUEST_URI') to def get_uri(self): return self.get_param('SCRIPT_NAME') Is this going to break anything? Is this a good solution? Or am I doing something fundamentally wrong (by for instance using SimpleSessionApp). If not, can I supply a patch? B) Session time out that was something that was biting me too. I work for a Pharmaceutical company (clinical trail) and they really hate to see stack traces. So when a session times out, instead of the stack trace I want to refer it to a TimeOut page. (in the future I might want to implement something that browser keeps refreshing the session as long as it is alive... anybody?). I solved that in similar fashion as above. However, due to lack of the understanding of the internals I hard coded the page name timeout. Again I edited run method in app.py. If the load_session fails, I create a new session and send if off to the timeout page. try: self.load_session(ctx) if os.environ.has_key('PATH_INFO'): ctx.locals.__page__ = os.environ['PATH_INFO'][1:] except: ctx.new_session() ctx.locals.__page__ = "timeout" Please let me know what anybody thinks of the edits I made. Thanks again for creating such a new framework. Kind regards, Hans Kramer -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: From damianm at esi.com.au Thu Oct 9 21:41:35 2008 From: damianm at esi.com.au (Damian McGuckin) Date: Thu, 9 Oct 2008 20:41:35 +1000 (EST) Subject: [albatross-users] SimpleSessionApp, and session time out In-Reply-To: <1223542406.6618.57.camel@cancun.hanskramer.com> References: <1223542406.6618.57.camel@cancun.hanskramer.com> Message-ID: On Thu, 9 Oct 2008, Hans Kramer wrote: > First of all I would like to use the SimpleSessionApp class instead of > the RandomModularSessionApp class. (I tend to like to work with classes) The RandomModularSessionApp is just as class-friendly as the other. I have found the Random... far easier with which to work that the other. > Perhaps this is a mistake, just be frank. Probably more a misconception. Then again, my experience is biased to those things with which I have worked. Just my $0.02. For the other things, I will let the more experienced hands/brains make suggestions. - Damian Pacific Engineering Systems International, 277-279 Broadway, Broadway NSW 2007 Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here ! Views and opinions here are mine and not those of any past or present employer