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 :
ManagePortal, ModifyPortalContent
from permissions import DeletePortalContents, DeleteObjects, DeleteOwnedObjects, SetLocalRoles, CheckMemberPermission
from Products.CMFCore.utils import _checkPermission, getToolByName
+from Products.CMFCore.utils import getUtilityByInterfaceName
from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
from Products.CMFCore.PortalFolder import PortalFolder, ContentFilter
from Products.CMFDefault.DublinCore import 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')):
- id = makeValidId(self, key)
- return NullResource(self, id, request).__of__(self)
- raise KeyError, key
-
-
+
security.declarePublic('allowedContentTypes')
def allowedContentTypes(self):
"""
""" query catalog and returns brains of contents.
Requires ExtendedPathIndex
"""
- ctool = getToolByName(self, 'portal_catalog')
+ ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
contentFilter['path'] = {'query':'/'.join(self.getPhysicalPath()),
'depth':1}
- return ctool(sort_on='position', **contentFilter)
-
+ return ctool(sort_on='position', **contentFilter)
security.declarePublic('synContentValues')
def synContentValues(self):
if REQUEST is not None:
return self.folder_contents( # XXX: ick!
self, REQUEST, portal_status_message="Folder added")
+
+
+ security.declareProtected(AddPortalContent, 'put_upload')
+ def put_upload(self, REQUEST, RESPONSE):
+ """ Upload a content thru webdav put method.
+ The default behavior (NullRessource.PUT + PortalFolder.PUT_factory)
+ disallow files names with '_' at the begining.
+ """
+ pass
# ## overload to maintain ownership if authenticated user has 'Manage portal' permission