From f1f87a16121bd95bd750f9ffe9ee1a5f36f78bdc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Thu, 27 Jun 2013 10:15:53 +0200 Subject: [PATCH 1/1] =?utf8?q?On=20s'appr=C3=AAte=20=C3=A0=20customiser=20?= =?utf8?q?le=20comportement=20aux=20requ=C3=AAtes=20PUT.=20Copie=20telle?= =?utf8?q?=20quelle=20du=20code=20de=20OFS/ObjectManager.py.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Folder.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Folder.py b/Folder.py index 0d395be..9808810 100644 --- a/Folder.py +++ b/Folder.py @@ -33,6 +33,7 @@ from cgi import escape from OFS import Moniker from ZODB.POSException import ConflictError import OFS.subscribers +from webdav.NullResource import NullResource from zope.event import notify from zope.lifecycleevent import ObjectCopiedEvent try : @@ -81,6 +82,18 @@ class PlinnFolder(CMFCatalogAware, PortalFolder, DefaultDublinCoreImpl) : def __init__( self, id, title='' ) : PortalFolder.__init__(self, id) DefaultDublinCoreImpl.__init__(self, title = title) + + def __getitem__(self, key): + if key in self: + return self._getOb(key, None) + request = getattr(self, 'REQUEST', None) + if not isinstance(request, (str, NoneType)): + method=request.get('REQUEST_METHOD', 'GET') + if (request.maybe_webdav_client and + method not in ('GET', 'POST')): + return NullResource(self, key, request).__of__(self) + raise KeyError, key + security.declarePublic('allowedContentTypes') def allowedContentTypes(self): -- 2.20.1