Terry MacDonald
terry.macdonald at dsl.pipex.com
Sat Oct 2 00:11:55 EDT 2004
> > Notice how it subclasses MySitePage. In MySiteAuthPage.prep() I > > check the session for proper authentication and set a boolean, say, > > authenticated. Then I override write_html() in MySiteAuthPage: > > > > def write_html(self): > > if not self.authenticated: > > save, self.write_content = self.write_content, self.genloginform > > MySitePage.write_html(self) > > self.write_content = save > > else: > > MySitePage.write_html(self) > > > > where genloginform() makes calls to self.writeln() writing the login > > form to the browser. What this does is, if not authenticated, > > momentarily replaces the write_content method of the servlet with the > > login form, otherwise, if authenticated, just writes out the page. > > > > Then all my pages for my app either subclass MySitePage or > > MySiteAuthPage depending on whether or not the page needs > > authentication. No calls to internal_redirect are necessary! Daniel, I'm in the process of working with mod_servlet after working with mod_publisher for a while. I like it but I'm still working out for myself the discernable benefits it has over publisher. Anyhow... ...I tried recreating the above page login/authentication, however, it only worked when I overrode write_body_parts instead of write_html. Overriding write_html produced nothing. The browser page just stayed on the page it was on before selecting the protected linked page. I'm still trying to understand why...any pointers? Currently I use HTMLPage to form my page. But I use precompiled Cheetah templates for the body of each page. e.g. my index page looks like this... from SitePage import SitePage from let_index import let_index class index(SitePage): def write_content(self): let_index.req = self.req self.write(let_index()) As an aside as I am using cheetah this way I take it I will have lots of small files like this if I have lots of pages, whereas in publisher I could have one index module holding many different page rendering functions. Is this the way it has to be with the class/servlet based approach? Keep up the good work! cheers -- Terry Registered Linux User # 311806
|