Re: Problem: Embedding 401 page (not author ized) for "edit" with standard_error_message
Heiko Besemann <[email protected]> Mon, 20 Jul 2009 14:20:35 +0200
| Newsgroups | gmane.comp.web.zope.silva.devel |
|---|---|
| Message-ID | <415015e84b6d9e253422ffd60b74c3e2@localhost> |
Hi Kit, no its a default Silva / Zope installation with no access protected pages. I simply created a Silva root cms object in my Zope's root folder and changed the standard_error_message template for the 401 stuff. Well, I will try to pdb today evening and figure out whats wrong with it and let you know if I was successfull. Cheers, Heiko On Mon, 20 Jul 2009 07:34:55 +0200, Kit BLAKE <[email protected]> wrote: > Hieko, > Tried to reproduce your problem this weekend, and I get the same > messages but not the error with traceback. However I also don't see > the 'nice' 401 page. > > Have you set an access restriction on the entire site? When everything > from the root is access protected we've seen problems with 401 errors, > because seemingly innocuous things such as logo and navigation images > are also protected. > > Kit > > > On 17 Jul 2009, at 17:24, Heiko Besemann wrote: > >> >> Hi there, >> >> sorry for bugging the dev-list with my problems. However I run into a >> strange thing tonight I can not explain and need someones professional >> advice how to get this fixed. >> >> Well, Silva uses the "standard_error_message" for rendering custom >> errors >> like 404 (not found), 500 (system problems) and 401 (not >> authorized). When >> one of these errors happends my wish is that Silva will not render the >> standard_error_message template but uses my custom skins content >> area to >> display the message. >> >> So for 404, 401 and 500 I did the following thing: >> >> <tal:block tal:condition="python: error_type == 'NotFound'"> >> <html metal:use-macro="context/@@mywonderfullcustomskin/main"> >> <head> >> <title metal:fill-slot="title"> >> 404 – Resource not found >> </title> >> </head> >> <body> >> <div metal:fill-slot="body"> >> <h2>404 – Resource not found</h2> >> <p> >> Huhu, where is my page gone? >> </p> >> </div> >> </body> >> </html> >> </tal:block> >> </tal:block> >> >> Now this works if I type something like >> "http://www.wattwanderinfo.de/where_is_my_page". The error message >> will get >> displayed withing my custom skin. >> >> Next thing I wanted was to render are "401" errors. The above code >> differs >> only for the condition check but everthing else is the same. I use my >> context/@@mywonderfullcustomskin macro aso. >> >> If I try to authenticate as "manager" to get into ZMI and cancel the >> authentication request, yes I get that permission denied stuff shown >> correctly on my page. However (and this is the thing I dont >> understand) if >> I try to authenticate as "edit" and cancel authentication I get some >> error >> like the following on my webpage: >> >> -- snipp -- >> You are not authorized to access this resource. >> Username and password are not correct. >> >> (Also, the following error occurred while attempting to render the >> standard >> error message, please see the event log for full details: >> (<Products.Silva.SilvaObject.Zope3ViewAttribute object at 0x01CF2450>, >> 'mywonderfullcustomskin')) >> -- snapp -- >> >> Zope event logfile shows me: >> >> -- snipp -- >> 2009-07-17T17:17:52 ERROR root Exception while rendering an error >> message >> Traceback (most recent call last): >> File "C:\Zope\2.11.1\Zope\lib\python\OFS\SimpleItem.py", line 227, in >> raise_standardErrorMessage >> v = s(**kwargs) >> File "C:\Zope\2.11.1\Zope\lib\python\Shared\DC\Scripts\Bindings.py", >> line >> 313, in __call__ >> return self._bindAndExec(args, kw, None) >> File "C:\Zope\2.11.1\Zope\lib\python\Shared\DC\Scripts\Bindings.py", >> line >> 350, in _bindAndExec >> return self._exec(bound_data, args, kw) >> File >> "C:\Zope\2.11.1\Zope\lib\python\Products\PageTemplates >> \ZopePageTemplate.py", >> line 330, in _exec >> result = self.pt_render(extra_context=bound_names) >> File >> "C:\Zope\2.11.1\Zope\lib\python\Products\PageTemplates >> \ZopePageTemplate.py", >> line 427, in pt_render >> result = PageTemplate.pt_render(self, source, extra_context) >> File >> "C:\Zope\2.11.1\Zope\lib\python\Products\PageTemplates >> \PageTemplate.py", >> line 96, in pt_render >> showtal=showtal) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\pagetemplate >> \pagetemplate.py", >> line 115, in pt_render >> strictinsert=0, sourceAnnotations=sourceAnnotations)() >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 271, >> in __call__ >> self.interpret(self.program) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 346, >> in interpret >> handlers[opcode](self, args) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 536, >> in do_optTag_tal >> self.do_optTag(stuff) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 521, >> in do_optTag >> return self.no_tag(start, program) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 516, >> in no_tag >> self.interpret(program) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 346, >> in interpret >> handlers[opcode](self, args) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 855, >> in do_condition >> self.interpret(block) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 346, >> in interpret >> handlers[opcode](self, args) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 536, >> in do_optTag_tal >> self.do_optTag(stuff) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 521, >> in do_optTag >> return self.no_tag(start, program) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 516, >> in no_tag >> self.interpret(program) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 346, >> in interpret >> handlers[opcode](self, args) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tal\talinterpreter.py", >> line 870, >> in do_useMacro >> macro = self.engine.evaluateMacro(macroExpr) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tales\tales.py", line 696, >> in >> evaluate >> return expression(self) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tales\expressions.py", >> line 217, >> in __call__ >> return self._eval(econtext) >> File >> "C:\Zope\2.11.1\Zope\lib\python\Products\PageTemplates >> \Expressions.py", >> line 131, in _eval >> ob = self._subexprs[-1](econtext) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\tales\expressions.py", >> line 124, >> in _eval >> ob = self._traverser(ob, element, econtext) >> File >> "C:\Zope\2.11.1\Zope\lib\python\Products\PageTemplates >> \Expressions.py", >> line 83, in boboAwareZopeTraverse >> request=request) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\traversing\adapters.py", >> line >> 154, in traversePathElement >> return namespaceLookup(ns, nm, obj, request) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\traversing\namespace.py", >> line >> 112, in namespaceLookup >> return traverser.traverse(name, ()) >> File "C:\Zope\2.11.1\Zope\lib\python\zope\traversing\namespace.py", >> line >> 345, in traverse >> raise TraversalError(self.context, name) >> TraversalError: (<Products.Silva.SilvaObject.Zope3ViewAttribute >> object at >> 0x01CF2450>, 'mywonderfullcustomskin') >> >> -- snapp -- >> >> So why is everything working fine for 404 and 401 (with manage >> authentication), but not for 401 with "edit" authentication? >> >> Cheers, >> Heiko >> >> >> >> _______________________________________________ >> silva-dev mailing list >> [email protected] >> https://lists.infrae.com/mailman/listinfo/silva-dev _______________________________________________ silva-dev mailing list [email protected] https://lists.infrae.com/mailman/listinfo/silva-dev