[Zope-Annce] Silva 1.6 Final Released
27 march 2007 – Infrae has released version 1.6 of the Silva content management system. This release brings a range of improvements and several key new features, such as automatic PDF and Word file fulltext indexing, Atom/RSS feeds from containers, ‘classic’ list-based menu rendering, and additions to the documentation. Performance has been significantly improved by changing how containers are published and optimizing calls to the metadata service. Silva Find The Silva Find extension has been renovated to take advantage of the PDF and Word file fulltext cataloging. It now supports search by all metadata fields, including those in your custom sets. The search and result views can be extensively customized. Silva Find is included in the silva-extra tarball. Major changes in Silva 1.6 * The published state of containers is now determined by the state of the index document, as opposed to nested content, resulting in a significant performance gain. * Index items are now distinguished from simple anchors, and the Indexer content type has been improved. Old index items will be gracefully upgraded. * The page language can now be based on the metadata setting. This also opens up many possibilities for multi-language sites. * Silva now uses ZCML for registration of Silva extensions and the content types they define. See doc/developer_changes.txt. Developers should read doc/extension.txt. * Many i18n changes: o New languages o i18n fixes * Lots of bugfixes and subtle improvements. * This is one of the best tested final releases in Silva’s history. Many thanks to all who contributed. See HISTORY.txt in the Silva core package for more information about changes in Silva 1.6. For developer-level changes, see doc/developer_changes. Also see the changes in components such as Silva Metadata, External Sources, etc. What is Silva? Silva is an enterprise-class CMS designed for large organizations that manage multiple or complex websites. Content is stored in clean and future-proof XML, independent of layout and presentation. Features include a multi-version workflow system, XSLT rendering support, content reuse in multiple publications, sophisticated access management, extensive import/export facilities, fine-grained templating, and hi-res image storage and manipulation. Silva and its extensions are open source software. For more complete information, see the Silva Product Pages at http://www.infrae.com/products/silva. Download The package can be downloaded from http://www.infrae.com/download/Silva. Links to developer mailing lists, the issue tracker, and info about SVN access can be found on the Silva product page. Contact FMI contact Eric Casteleijn, eric at infrae com, +31 10 243 7051. -- - eric casteleijn http://infrae.com ___ Zope-Announce maillist - Zope-Announce@zope.org http://mail.zope.org/mailman/listinfo/zope-announce Zope-Announce for Announcements only - no discussions (Related lists - Users: http://mail.zope.org/mailman/listinfo/zope Developers: http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope-Checkins] SVN: Zope/branches/2.9/doc/CHANGES.txt Hmm, this never made it in. No matter, just set the SVN record straigt for future releases
Log message for revision 73720: Hmm, this never made it in. No matter, just set the SVN record straigt for future releases Changed: U Zope/branches/2.9/doc/CHANGES.txt -=- Modified: Zope/branches/2.9/doc/CHANGES.txt === --- Zope/branches/2.9/doc/CHANGES.txt 2007-03-27 12:32:02 UTC (rev 73719) +++ Zope/branches/2.9/doc/CHANGES.txt 2007-03-27 12:38:13 UTC (rev 73720) @@ -8,6 +8,10 @@ Bugs fixed + - Protected various security mutators with a new postonly decorator. +The decorator limits method publishing to POST requests only, and +is a backport from Zope 2.11's requestmethod decorator factory. + - Collector #2298: webdav.Resource.COPY and webdav.Resource.MOVE did not send the expected copy/move events. ___ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins
[Zope-Checkins] SVN: Zope/branches/2.9/ Collector #2300: delimit *all* headers with CRLF; accumulated_headers and appendHeader use \n for delimeters and never get corrected on output
Log message for revision 73721: Collector #2300: delimit *all* headers with CRLF; accumulated_headers and appendHeader use \n for delimeters and never get corrected on output Changed: U Zope/branches/2.9/doc/CHANGES.txt U Zope/branches/2.9/lib/python/ZServer/HTTPResponse.py U Zope/branches/2.9/lib/python/ZServer/tests/test_responses.py -=- Modified: Zope/branches/2.9/doc/CHANGES.txt === --- Zope/branches/2.9/doc/CHANGES.txt 2007-03-27 12:38:13 UTC (rev 73720) +++ Zope/branches/2.9/doc/CHANGES.txt 2007-03-27 12:43:31 UTC (rev 73721) @@ -4,6 +4,12 @@ Change information for previous versions of Zope can be found in the file HISTORY.txt. + Zope 2.9.8 (unreleased) + + Bugs fixed + + - Collector #2300: delimit *all* HTTP Response headers with CRLF. + Zope 2.9.7 (2007/03/25) Bugs fixed Modified: Zope/branches/2.9/lib/python/ZServer/HTTPResponse.py === --- Zope/branches/2.9/lib/python/ZServer/HTTPResponse.py2007-03-27 12:38:13 UTC (rev 73720) +++ Zope/branches/2.9/lib/python/ZServer/HTTPResponse.py2007-03-27 12:43:31 UTC (rev 73721) @@ -114,8 +114,15 @@ self._chunking=1 else: self.setHeader('Connection','close') + +headers = headers.items() +for line in self.accumulated_headers.splitlines(): +if line[0] == '\t': +headers[-1][1] += '\n' + line +continue +headers.append(line.split(': ', 1)) -for key, val in headers.items(): +for key, val in headers: if key.lower()==key: # only change non-literal header names key=%s%s % (key[:1].upper(), key[1:]) @@ -125,10 +132,13 @@ key=%s-%s%s % (key[:l],key[l+1:l+2].upper(),key[l+2:]) start=l+1 l=key.find('-',start) +val = val.replace('\n\t', '\r\n\t') append(%s: %s % (key, val)) if self.cookies: -headersl=headersl+self._cookie_list() -headersl[len(headersl):]=[self.accumulated_headers, body] +headersl.extend(self._cookie_list()) + +append('') +append(body) return \r\n.join(headersl) _tempfile=None @@ -151,6 +161,7 @@ + if type(data) != type(''): raise TypeError('Value must be a string') Modified: Zope/branches/2.9/lib/python/ZServer/tests/test_responses.py === --- Zope/branches/2.9/lib/python/ZServer/tests/test_responses.py 2007-03-27 12:38:13 UTC (rev 73720) +++ Zope/branches/2.9/lib/python/ZServer/tests/test_responses.py 2007-03-27 12:43:31 UTC (rev 73721) @@ -56,7 +56,7 @@ one = ZServerHTTPResponse(stdout=DummyChannel()) self.assertRaises(AssertionError, one.setBody, test_streamiterator()) - + class DummyChannel: def __init__(self): self.out = StringIO() @@ -92,8 +92,46 @@ return self.data raise StopIteration +class ZServerHTTPResponseTestCase(unittest.TestCase): +Test ZServer HTTPResponse object + +def _makeOne(self): +return ZServerHTTPResponse() + +def testToString(self): +response = self._makeOne() +response.headers = { +'content-type': 'text/plain', +'all-lower-case': 'foo', +'Title-Cased': 'bar', +'mixed-CasED': 'spam', +'multilined': 'eggs\n\tham'} +response.accumulated_headers = 'foo-bar: bar\n\tbaz\nFoo-bar: monty\n' +response.cookies = dict(foo=dict(value='bar')) +response.body = 'A body\nwith multiple lines\n' + +result = str(response) +headers, body = result.rsplit('\r\n\r\n') + +self.assertEqual(body, response.body) + +self.assertTrue(headers.startswith('HTTP/1.0 200 OK\r\n')) + +# 15 header lines all delimited by \r\n +self.assertEqual( +['\n' in line for line in headers.split('\r\n')], +15 * [False]) + +self.assertTrue('Multilined: eggs\r\n\tham\r\n' in headers) +self.assertTrue('Foo-Bar: bar\r\n\tbaz\r\n' in headers) + def test_suite(): -return unittest.makeSuite(ZServerResponseTestCase) +suite = unittest.TestSuite() +suite.addTests(( +unittest.makeSuite(ZServerResponseTestCase), +unittest.makeSuite(ZServerHTTPResponseTestCase) +)) +return suite if __name__ == __main__: unittest.main(defaultTest=test_suite) ___ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins
[Zope-Checkins] SVN: Zope/trunk/ Mark ZCatalog catalog brains with an interface
Log message for revision 73762: Mark ZCatalog catalog brains with an interface Changed: U Zope/trunk/doc/CHANGES.txt U Zope/trunk/lib/python/Products/ZCatalog/CatalogBrains.py U Zope/trunk/lib/python/Products/ZCatalog/interfaces.py -=- Modified: Zope/trunk/doc/CHANGES.txt === --- Zope/trunk/doc/CHANGES.txt 2007-03-27 14:34:19 UTC (rev 73761) +++ Zope/trunk/doc/CHANGES.txt 2007-03-27 14:36:38 UTC (rev 73762) @@ -51,6 +51,9 @@ Features added + - ZCatalog result objects (catalog brains) now have an interface, +ZCatalog.interfaces.ICatalogBrain. + - A new module, AccessControl.requestmethod, provides a decorator factory that limits decorated methods to one request method only. For example, marking a method with @requestmethod('POST') limits Modified: Zope/trunk/lib/python/Products/ZCatalog/CatalogBrains.py === --- Zope/trunk/lib/python/Products/ZCatalog/CatalogBrains.py2007-03-27 14:34:19 UTC (rev 73761) +++ Zope/trunk/lib/python/Products/ZCatalog/CatalogBrains.py2007-03-27 14:36:38 UTC (rev 73762) @@ -13,9 +13,13 @@ __version__ = $Revision$[11:-2] +from zope.interface import implements + import Acquisition, Record from ZODB.POSException import ConflictError +from interfaces import ICatalogBrain + # Switch for new behavior, raise exception instead of returning None. # Use 'catalog-getObject-raises off' in zope.conf to restore old behavior. GETOBJECT_RAISES = True @@ -25,6 +29,8 @@ required, and provides just enough smarts to let us get the URL, path, and cataloged object without having to ask the catalog directly. +implements(ICatalogBrain) + def has_key(self, key): return self.__record_schema__.has_key(key) Modified: Zope/trunk/lib/python/Products/ZCatalog/interfaces.py === --- Zope/trunk/lib/python/Products/ZCatalog/interfaces.py 2007-03-27 14:34:19 UTC (rev 73761) +++ Zope/trunk/lib/python/Products/ZCatalog/interfaces.py 2007-03-27 14:36:38 UTC (rev 73762) @@ -246,3 +246,37 @@ pghandler -- optional Progresshandler as defined in ProgressHandler.py (see also README.txt) + +# XXX This should inherit from an IRecord interface, if there ever is one. +class ICatalogBrain(Interface): +Catalog brain that handles looking up attributes as +required, and provides just enough smarts to let us get the URL, path, +and cataloged object without having to ask the catalog directly. + +def has_key(key): +Record has this field + +def getPath(): +Get the physical path for this record + +def getURL(relative=0): +Generate a URL for this record + +def _unrestrictedGetObject(): +Return the object for this record + +Same as getObject, but does not do security checks. + + +def getObject(): +Return the object for this record + +Will return None if the object cannot be found via its cataloged path +(i.e., it was deleted or moved without recataloging), or if the user is +not authorized to access the object. + + + +def getRID(): +Return the record ID for this object. + ___ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins
[Zope-Checkins] SVN: Zope/trunk/lib/python/Products/Five/browser/ Fix Collector #2264: browser:view should set __name__
Log message for revision 73766: Fix Collector #2264: browser:view should set __name__ Changed: U Zope/trunk/lib/python/Products/Five/browser/metaconfigure.py U Zope/trunk/lib/python/Products/Five/browser/tests/pages.txt U Zope/trunk/lib/python/Products/Five/browser/tests/pages.zcml -=- Modified: Zope/trunk/lib/python/Products/Five/browser/metaconfigure.py === --- Zope/trunk/lib/python/Products/Five/browser/metaconfigure.py 2007-03-27 14:57:27 UTC (rev 73765) +++ Zope/trunk/lib/python/Products/Five/browser/metaconfigure.py 2007-03-27 14:57:27 UTC (rev 73766) @@ -251,6 +251,7 @@ except: cname = GeneratedClass +cdict['__name__'] = name newclass = makeClass(cname, bases, cdict) _handle_for(_context, for_) Modified: Zope/trunk/lib/python/Products/Five/browser/tests/pages.txt === --- Zope/trunk/lib/python/Products/Five/browser/tests/pages.txt 2007-03-27 14:57:27 UTC (rev 73765) +++ Zope/trunk/lib/python/Products/Five/browser/tests/pages.txt 2007-03-27 14:57:27 UTC (rev 73766) @@ -85,8 +85,18 @@ self.folder.unrestrictedTraverse('testoid/@@new_style_class2') Products.Five.metaclass.NewStyleClass ... + +Both browser:view and browser:page are ILocation providers, so make sure they +have a __name__ attribute: + page = self.folder.unrestrictedTraverse('testoid/eagle.txt') + page.__name__ + u'eagle.txt' + view = self.folder.unrestrictedTraverse('testoid/named_view') + view.__name__ + u'named_view' + ZPT-based browser pages --- Modified: Zope/trunk/lib/python/Products/Five/browser/tests/pages.zcml === --- Zope/trunk/lib/python/Products/Five/browser/tests/pages.zcml 2007-03-27 14:57:27 UTC (rev 73765) +++ Zope/trunk/lib/python/Products/Five/browser/tests/pages.zcml 2007-03-27 14:57:27 UTC (rev 73766) @@ -218,6 +218,14 @@ permission=zope2.Public / + !-- A named view -- + browser:view + name=named_view + for=Products.Five.tests.testing.simplecontent.ISimpleContent + class=.pages.SimpleView + permission=zope2.Public + / + !-- XXX this should really be in Five.form.tests -- !-- protected edit form for permission check -- ___ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins
[Zope-Checkins] SVN: Products.Five/branches/1.3/browser/ Merge Collector #2264 fix from Zope trunk: browser:view should set __name__
Log message for revision 73768: Merge Collector #2264 fix from Zope trunk: browser:view should set __name__ Changed: U Products.Five/branches/1.3/browser/metaconfigure.py U Products.Five/branches/1.3/browser/tests/pages.txt U Products.Five/branches/1.3/browser/tests/pages.zcml -=- Modified: Products.Five/branches/1.3/browser/metaconfigure.py === --- Products.Five/branches/1.3/browser/metaconfigure.py 2007-03-27 14:58:44 UTC (rev 73767) +++ Products.Five/branches/1.3/browser/metaconfigure.py 2007-03-27 14:59:16 UTC (rev 73768) @@ -247,6 +247,7 @@ except: cname = GeneratedClass +cdict['__name__'] = name newclass = makeClass(cname, bases, cdict) _handle_for(_context, for_) Modified: Products.Five/branches/1.3/browser/tests/pages.txt === --- Products.Five/branches/1.3/browser/tests/pages.txt 2007-03-27 14:58:44 UTC (rev 73767) +++ Products.Five/branches/1.3/browser/tests/pages.txt 2007-03-27 14:59:16 UTC (rev 73768) @@ -85,8 +85,18 @@ self.folder.unrestrictedTraverse('testoid/@@new_style_class2') Products.Five.metaclass.NewStyleClass ... + +Both browser:view and browser:page are ILocation providers, so make sure they +have a __name__ attribute: + page = self.folder.unrestrictedTraverse('testoid/eagle.txt') + page.__name__ + u'eagle.txt' + view = self.folder.unrestrictedTraverse('testoid/named_view') + view.__name__ + u'named_view' + ZPT-based browser pages --- Modified: Products.Five/branches/1.3/browser/tests/pages.zcml === --- Products.Five/branches/1.3/browser/tests/pages.zcml 2007-03-27 14:58:44 UTC (rev 73767) +++ Products.Five/branches/1.3/browser/tests/pages.zcml 2007-03-27 14:59:16 UTC (rev 73768) @@ -218,6 +218,14 @@ permission=zope2.Public / + !-- A named view -- + browser:view + name=named_view + for=Products.Five.tests.testing.simplecontent.ISimpleContent + class=.pages.SimpleView + permission=zope2.Public + / + !-- XXX this should really be in Five.form.tests -- !-- protected edit form for permission check -- ___ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins
[Zope-dev] buildbot failure in Zope branches 2.10 2.4 Linux zc-buildbot
The Buildbot has detected a failed build of Zope branches 2.10 2.4 Linux zc-buildbot. Buildbot URL: http://buildbot.zope.org/ Build Reason: changes Build Source Stamp: 568 Blamelist: andreasjung,dobe,fdrake,jim,jukart,mj BUILD FAILED: failed test sincerely, -The Buildbot ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] buildbot failure in Zope branches 2.9 2.4 Linux zc-buildbot
The Buildbot has detected a failed build of Zope branches 2.9 2.4 Linux zc-buildbot. Buildbot URL: http://buildbot.zope.org/ Build Reason: changes Build Source Stamp: 567 Blamelist: dobe,mj BUILD FAILED: failed test sincerely, -The Buildbot ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] buildbot failure in Zope trunk 2.4 Windows 2000 zc-bbwin6
The Buildbot has detected a failed build of Zope trunk 2.4 Windows 2000 zc-bbwin6. Buildbot URL: http://buildbot.zope.org/ Build Reason: The web-page 'force build' button was pressed by 'Benji': see if slave is back Build Source Stamp: None Blamelist: BUILD FAILED: failed failed slave lost sincerely, -The Buildbot ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Re: Views on catalog results
On 3/12/07, Martijn Pieters [EMAIL PROTECTED] wrote: - Create an ICatalogResult interface and use a five:implements directive to configure ZCatalog.CatalogBrains.AbstractCatalogBrain as implementing it. [...] I'd like to add this to Zope trunk, with Traversable a base class for AbstractCatalogBrain and a implements(ICatalogResult) on that same class. Checked in on the trunk. Of course, Five.Traversable is no longer needed on the trunk (*slaps forehead*). -- Martijn Pieters ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] buildbot failure in Zope branches 2.9 2.4 Linux zc-buildbot
The Buildbot has detected a failed build of Zope branches 2.9 2.4 Linux zc-buildbot. Buildbot URL: http://buildbot.zope.org/ Build Reason: changes Build Source Stamp: 647 Blamelist: andreasjung,baijum,dobe,mj BUILD FAILED: failed test sincerely, -The Buildbot ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] buildbot failure in Zope trunk 2.4 Linux zc-buildbot
The Buildbot has detected a failed build of Zope trunk 2.4 Linux zc-buildbot. Buildbot URL: http://buildbot.zope.org/ Build Reason: changes Build Source Stamp: 649 Blamelist: andreasjung,dobe,mj BUILD FAILED: failed test sincerely, -The Buildbot ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-PAS] Re: [Plone-Users] Plone 3.0-beta1 is out
Previously Carl Brewer wrote: It's now doing something quite weird, when I add users, and then 'show users', I see two entries for each user I added. They're identical. They're the same users. The is caused by a design flaw in PAS: doing a getUserById() does a search for the user id internally. This means that unless a user can be found in a search he does not exist as far as PAS is concerned. Plone uses has its own plugin to manage user properties and user searching. This can only search for users who have properties inside the Plone site, so we also need to enable searching on the source_users plugin to be able to create user instances for all other users (such as the Zope admin user from the root user folder). The result is that users can be found twice: once in source_users and once by the Plone property manager. This PAS behaviour is problematic: there are a lot of valid configurations where you can have a user who can not be found by a search. The OpenID implementation has to jump through various hoops to fake search results in order to be usable for example. Wichert. -- Wichert Akkerman [EMAIL PROTECTED]It is simple to make things. http://www.wiggy.net/ It is hard to make things simple. ___ Zope-PAS mailing list Zope-PAS@zope.org http://mail.zope.org/mailman/listinfo/zope-pas
Re: [Zope] smart development debugging
My suggestion would be to develop it as a Python Product in Zope 2.8.9 and use automatic product refreshing so you can change code and test it immediately without having to restart Zope. Zope 2.8 is slowly becoming old but still the fastest development environment I believe. I'm also keeping a keen eye on Grok like Philipp suggested. Roberto Scelzo wrote: Hi all, we are developing a couple of zope apps which now are becoming pretty complex and, unfortunately, up to now we're developing TTW since we haven't yet find a smart fast way to do our job avoiding the ZMI. We've searched a lot around but never found a nice guidence or howto... It'll be nice to develop by eclipse... Anyways, since the last upgrade (zope 2.9) even the external editor doesn't work anymore. (sob...) Someone suggested us to use a FS dump product, another one instead pointed us to zope FS products, but, is there any article/howto on how to make group development/debugging of middle/large sized zope apps a nice and confortable experience? Thank you! Roberto L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail http://us.rd.yahoo.com/mail/it/taglines/hotmail/nowyoucan/nextgen/* http://it.docs.yahoo.com/nowyoucan.html ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev ) -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Some __bobo_traverse__ help
Garito wrote at 2007-3-27 02:50 +0200: How could be the __bobo_traverse__ to work as expected with out losting traverse_subpath? You need to do strange things in __bobo_traverse__ to loose the traverse_subpath: in fact, you need to tamper with the TraversalRequestNameStack, or to no longer traverse to the objects that set the traverse_subpath (in their __before_publishing_traverse__ hook). I fear you need to go back to the drawing board. When I remember right, then your primary problem has been that Zope's security machinery fails when __bobo_traverse__ returns objects which are neither acquisition wrapped nor have their own security declarations (such as strings, unicode, etc). Therefore, I suggested that you instead of the elementary types return wrappers for those types which behave identical to them but in addition have the security declaration __roles__ = None (which means the object is public). That seemed to work quite well for some time. Now you are facing obscure problems (a user is not authenticated although you think it should be). Unless you are URL traversing to one of the wrappers above (which you should not do of course), this problem should have nothing to do with the wrappers. Almost surely, it is a different problem -- which one, I cannot tell you. But, I gave some hints as to how I would proceed to understand the problem. -- Dieter ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Some __bobo_traverse__ help
Forget it Dieter! Finally what I do is do the normal traverse (with the bobo_traverse) and I use another REQUEST variable (pathTraverse) to store the list expected at traverse_subpath and return the last object founded I pretty sure (I don't test it for now) I can reconstruct TraversalRequestNameStack at __call__ level Now I don't need the wrappers but the code goes fine I didn't like so much the pathTraverse solution but works for me and that's the real important think Thanks and sorry! 2007/3/27, Dieter Maurer [EMAIL PROTECTED]: Garito wrote at 2007-3-27 02:50 +0200: How could be the __bobo_traverse__ to work as expected with out losting traverse_subpath? You need to do strange things in __bobo_traverse__ to loose the traverse_subpath: in fact, you need to tamper with the TraversalRequestNameStack, or to no longer traverse to the objects that set the traverse_subpath (in their __before_publishing_traverse__ hook). I fear you need to go back to the drawing board. When I remember right, then your primary problem has been that Zope's security machinery fails when __bobo_traverse__ returns objects which are neither acquisition wrapped nor have their own security declarations (such as strings, unicode, etc). Therefore, I suggested that you instead of the elementary types return wrappers for those types which behave identical to them but in addition have the security declaration __roles__ = None (which means the object is public). That seemed to work quite well for some time. Now you are facing obscure problems (a user is not authenticated although you think it should be). Unless you are URL traversing to one of the wrappers above (which you should not do of course), this problem should have nothing to do with the wrappers. Almost surely, it is a different problem -- which one, I cannot tell you. But, I gave some hints as to how I would proceed to understand the problem. -- Dieter -- Mis Cosas http://blogs.sistes.net/Garito ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )