[Zope-Checkins] CVS: Zope/lib/python/webdav - Collection.py:1.24 EtagSupport.py:1.8 LockItem.py:1.7 Lockable.py:1.8 NullResource.py:1.38 Resource.py:1.52 WriteLockInterface.py:1.6 __init__.py:1.7 client.py:1.20 common.py:1.17 davcmds.py:1.20 xmltools.py:1.13
Martijn Pieters
mj@zope.com
Wed, 14 Aug 2002 18:11:40 -0400
Update of /cvs-repository/Zope/lib/python/webdav
In directory cvs.zope.org:/tmp/cvs-serv21331
Modified Files:
Collection.py EtagSupport.py LockItem.py Lockable.py
NullResource.py Resource.py WriteLockInterface.py __init__.py
client.py common.py davcmds.py xmltools.py
Log Message:
Clean up indentation and trailing whitespace.
=== Zope/lib/python/webdav/Collection.py 1.23 => 1.24 ===
--- Zope/lib/python/webdav/Collection.py:1.23 Thu Nov 29 13:18:16 2001
+++ Zope/lib/python/webdav/Collection.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""WebDAV support - collection objects."""
@@ -25,7 +25,7 @@
class Collection(Resource):
"""The Collection class provides basic WebDAV support for
- collection objects. It provides default implementations
+ collection objects. It provides default implementations
for all supported WebDAV HTTP methods. The behaviors of some
WebDAV HTTP methods for collections are slightly different
than those for non-collection resources."""
@@ -119,12 +119,12 @@
else:
# There were no conflicts, so we can go ahead and delete
# ajung: additional check if we really could delete the collection
- # (Collector #2196)
+ # (Collector #2196)
if parent.manage_delObjects([name],REQUEST=None) is None:
RESPONSE.setStatus(204)
else:
RESPONSE.setStatus(403)
-
+
return RESPONSE
=== Zope/lib/python/webdav/EtagSupport.py 1.7 => 1.8 ===
--- Zope/lib/python/webdav/EtagSupport.py:1.7 Fri Jun 21 10:13:53 2002
+++ Zope/lib/python/webdav/EtagSupport.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
__version__ = "$Revision$"[11:-2]
@@ -93,8 +93,8 @@
for match in matchlist:
if match == '*': r.insert(0, match)
elif (match[0] + match[-1] == '""') and (len(match) > 2):
- r.append(match[1:-1])
-
+ r.append(match[1:-1])
+
return tuple(r)
def http__processMatchHeaders(self, REQUEST=None):
@@ -134,5 +134,3 @@
raise "Precondition Failed"
elif self.http__etag() not in nonelist:
return 1
-
-
=== Zope/lib/python/webdav/LockItem.py 1.6 => 1.7 ===
--- Zope/lib/python/webdav/LockItem.py:1.6 Wed Jan 9 13:38:11 2002
+++ Zope/lib/python/webdav/LockItem.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
__version__ = "$Revision$"[11:-2]
@@ -52,7 +52,7 @@
'setTimeout', 'refresh')
security.declareProtected('Access contents information',
'getCreator', 'getCreatorPath')
-
+
def __init__(self, creator, owner='', depth=0, timeout='Infinite',
locktype='write', lockscope='exclusive', token=None):
errors = []
@@ -76,7 +76,7 @@
# AccessControl.Owned.ownerInfo returns the id of the creator
# and the path to the UserFolder they're defined in
self._creator = ownerInfo(creator)
-
+
self._owner = owner
self._depth = depth
self._timeout = timeout
@@ -175,4 +175,3 @@
</d:lockdiscovery>
</d:prop>""" % self.asLockDiscoveryProperty(ns="d")
return s
-
=== Zope/lib/python/webdav/Lockable.py 1.7 => 1.8 ===
--- Zope/lib/python/webdav/Lockable.py:1.7 Wed Nov 28 10:51:22 2001
+++ Zope/lib/python/webdav/Lockable.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
__version__ = "$Revision$"[11:-2]
@@ -133,7 +133,7 @@
# with the state of empty locks.
if hasattr(Acquisition.aq_base(self), '__no_valid_write_locks__'):
self.__no_valid_write_locks__()
-
+
import Globals
Globals.default__class_init__(LockableItem)
=== Zope/lib/python/webdav/NullResource.py 1.37 => 1.38 ===
--- Zope/lib/python/webdav/NullResource.py:1.37 Wed Aug 14 12:50:53 2002
+++ Zope/lib/python/webdav/NullResource.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""WebDAV support - null resource objects."""
@@ -68,7 +68,7 @@
if name and name.endswith('.pt'):
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
ob = ZopePageTemplate(name, body, content_type=typ)
- elif typ in ('text/html', 'text/xml', 'text/plain'):
+ elif typ in ('text/html', 'text/xml', 'text/plain'):
from OFS.DTMLDocument import DTMLDocument
ob = DTMLDocument( '', __name__=name )
elif typ[:6]=='image/':
@@ -179,7 +179,7 @@
elif ifhdr:
# There was an If header, but the parent is not locked.
raise 'Precondition Failed'
-
+
# The logic involved in locking a null resource is simpler than
# a regular resource, since we know we're not already locked,
# and the lock isn't being refreshed.
@@ -241,7 +241,7 @@
# now.
parent = Acquisition.aq_parent(self)
if parent: parent._delObject(self.id)
-
+
def __init__(self, name):
self.id = self.__name__ = name
self.title = "LockNull Resource '%s'" % name
@@ -288,7 +288,7 @@
RESPONSE.setStatus(412) # Precondition failed
return RESPONSE
-
+
def UNLOCK(self, REQUEST, RESPONSE):
""" Unlocking a Null Resource removes it from its parent """
@@ -424,6 +424,6 @@
RESPONSE.setStatus(201)
RESPONSE.setBody('')
return RESPONSE
-
-
+
+
Globals.default__class_init__(LockNullResource)
=== Zope/lib/python/webdav/Resource.py 1.51 => 1.52 ===
--- Zope/lib/python/webdav/Resource.py:1.51 Wed Aug 14 12:50:53 2002
+++ Zope/lib/python/webdav/Resource.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""WebDAV support - resource objects."""
@@ -92,7 +92,7 @@
ifhdr = request.get_header('If', None)
if Lockable.wl_isLocked(self) and (not ifhdr):
raise "Locked", "Resource is locked."
-
+
if not ifhdr: return None
if not Lockable.wl_isLocked(self): return None
@@ -101,7 +101,7 @@
# header, we're only going to worry about if the paths compare
if url is None: url = urlfix(request['URL'], method)
url = urlbase(url) # Gets just the path information
-
+
# if 'col' is passed in, an operation is happening on a submember
# of a collection, while the Lock may be on the parent. Lob off
# the final part of the URL (ie '/a/b/foo.html' becomes '/a/b/')
@@ -111,7 +111,7 @@
found = 0; resourcetagged = 0
taglist = IfParser(ifhdr)
for tag in taglist:
-
+
if not tag.resource:
# There's no resource (url) with this tag
tag_list = map(tokenFinder, tag.list)
@@ -146,7 +146,7 @@
def HEAD(self, REQUEST, RESPONSE):
"""Retrieve resource information without a response body."""
self.dav__init(REQUEST, RESPONSE)
-
+
content_type=None
if hasattr(self, 'content_type'):
content_type=absattr(self.content_type)
@@ -172,7 +172,7 @@
return RESPONSE
def PUT(self, REQUEST, RESPONSE):
- """Replace the GET response entity of an existing resource.
+ """Replace the GET response entity of an existing resource.
Because this is often object-dependent, objects which handle
PUT should override the default PUT implementation with an
object-specific implementation. By default, PUT requests
@@ -233,7 +233,7 @@
if parent.manage_delObjects([name],REQUEST=None) is None:
RESPONSE.setStatus(204)
else:
-
+
RESPONSE.setStatus(403)
return RESPONSE
@@ -270,7 +270,7 @@
return RESPONSE
def MKCOL(self, REQUEST, RESPONSE):
- """Create a new collection resource. If called on an existing
+ """Create a new collection resource. If called on an existing
resource, MKCOL must fail with 405 (Method Not Allowed)."""
self.dav__init(REQUEST, RESPONSE)
raise 'Method Not Allowed', 'The resource already exists.'
@@ -280,7 +280,7 @@
"""Create a duplicate of the source resource whose state
and behavior match that of the source resource as closely
as possible. Though we may later try to make a copy appear
- seamless across namespaces (e.g. from Zope to Apache), COPY
+ seamless across namespaces (e.g. from Zope to Apache), COPY
is currently only supported within the Zope namespace."""
self.dav__init(REQUEST, RESPONSE)
if not hasattr(aq_base(self), 'cb_isCopyable') or \
@@ -457,7 +457,7 @@
if existing:
object=getattr(parent, name)
self.dav__validate(object, 'DELETE', REQUEST)
- parent._delObject(name)
+ parent._delObject(name)
parent._setObject(name, ob)
RESPONSE.setStatus(existing and 204 or 201)
if not existing:
@@ -523,7 +523,7 @@
if found: break
if not found:
RESPONSE.setStatus(412) # Precondition failed
-
+
return RESPONSE
def UNLOCK(self, REQUEST, RESPONSE):
@@ -537,7 +537,7 @@
cmd = davcmds.Unlock()
result = cmd.apply(self, token, url)
-
+
if result:
RESPONSE.setStatus(207)
RESPONSE.setHeader('Content-Type', 'text/xml; charset="utf-8"')
=== Zope/lib/python/webdav/WriteLockInterface.py 1.5 => 1.6 ===
--- Zope/lib/python/webdav/WriteLockInterface.py:1.5 Wed Mar 13 11:39:05 2002
+++ Zope/lib/python/webdav/WriteLockInterface.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
__version__='$Revision$'[11:-2]
@@ -138,7 +138,7 @@
def asXML():
""" Render a full XML representation of a lock for WebDAV,
used when returning the value of a newly created lock. """
-
+
class WriteLockInterface(Interface.Base):
"""\
This represents the basic protocol needed to support the write lock
@@ -173,7 +173,7 @@
"""
-
+
def wl_lockItems(killinvalids=0):
""" Returns (key, value) pairs of locktoken, lock.
@@ -207,8 +207,7 @@
def wl_delLock(locktoken):
""" Deletes the locktoken identified by the locktokenuri """
-
+
def wl_clearLocks():
""" Deletes ALL DAV locks on the object - should only be called
by lock management machinery. """
-
=== Zope/lib/python/webdav/__init__.py 1.6 => 1.7 ===
--- Zope/lib/python/webdav/__init__.py:1.6 Wed Nov 28 10:51:22 2001
+++ Zope/lib/python/webdav/__init__.py Wed Aug 14 18:11:40 2002
@@ -1,20 +1,20 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""The webdav package provides WebDAV capability for common Zope objects.
Current WebDAV support in Zope provides for the correct handling of HTTP
- GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL,
+ GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL,
COPY and MOVE methods, as appropriate for the object that is the target
of the operation. Objects which do not support a given operation should
respond appropriately with a "405 Method Not Allowed" response.
@@ -22,17 +22,17 @@
Note that the ability of a Zope installation to support WebDAV HTTP methods
depends on the willingness of the web server to defer handling of those
methods to the Zope process. In most cases, servers will allow the process
- to handle any request, so the Zope portion of your url namespace may well
- be able to handle WebDAV operations even though your web server software
+ to handle any request, so the Zope portion of your url namespace may well
+ be able to handle WebDAV operations even though your web server software
is not WebDAV-aware itself. Zope installations which use bundled server
- implementations such as ZopeHTTPServer or ZServer should fully support
+ implementations such as ZopeHTTPServer or ZServer should fully support
WebDAV functions.
References:
-
- [WebDAV] Y. Y. Goland, E. J. Whitehead, Jr., A. Faizi, S. R. Carter, D.
- Jensen, "HTTP Extensions for Distributed Authoring - WebDAV." RFC 2518.
+
+ [WebDAV] Y. Y. Goland, E. J. Whitehead, Jr., A. Faizi, S. R. Carter, D.
+ Jensen, "HTTP Extensions for Distributed Authoring - WebDAV." RFC 2518.
Microsoft, U.C. Irvine, Netscape, Novell. February, 1999."""
__version__='$Revision$'[11:-2]
=== Zope/lib/python/webdav/client.py 1.19 => 1.20 ===
--- Zope/lib/python/webdav/client.py:1.19 Wed Apr 10 22:59:17 2002
+++ Zope/lib/python/webdav/client.py Wed Aug 14 18:11:40 2002
@@ -13,7 +13,7 @@
from urllib import quote
-
+
class HTTP(httplib.HTTP):
# A revised version of the HTTP class that can do basic
@@ -37,11 +37,11 @@
try:
[ver, code, msg] = line.split( None, 2)
except ValueError:
- try:
- [ver, code] = line.split( None, 1)
- msg = ""
- except ValueError:
- return -1, line, None
+ try:
+ [ver, code] = line.split( None, 1)
+ msg = ""
+ except ValueError:
+ return -1, line, None
if ver[:5] != 'HTTP/':
return -1, line, None
code=int(code)
@@ -59,7 +59,7 @@
self.url=url
mo = urlreg.match(url)
- if mo:
+ if mo:
host,port,uri=mo.group(1,2,3)
self.host=host
self.port=port and int(port[1:]) or 80
@@ -92,7 +92,7 @@
if atype=='Basic':
headers['Authorization']=(
"Basic %s" % (encodestring('%s:%s' % (self.username,self.password))).replace(
- '\012',''))
+ '\012',''))
return headers
raise ValueError, 'Unknown authentication scheme: %s' % atype
@@ -126,7 +126,7 @@
except:
raise 'NotAvailable', sys.exc_value
return http_response(ver, code, msg, hdrs, data)
-
+
# HTTP methods
def get(self, **kw):
@@ -374,8 +374,8 @@
"""
funny="""<?xml version="1.0" encoding="utf-8"?>
- <d:propertyupdate xmlns:d="DAV:"
- xmlns:z="http://www.zope.org/propsets/default"
+ <d:propertyupdate xmlns:d="DAV:"
+ xmlns:z="http://www.zope.org/propsets/default"
xmlns:q="http://www.something.com/foo/bar">
<d:set>
<d:prop>
@@ -449,7 +449,7 @@
tp=type(v)
if tp in (lt, tt):
raise TypeError, 'Invalid recursion in data to be marshaled.'
- result.append(marshal_var("%s:%s" % (name, tname), v))
+ result.append(marshal_var("%s:%s" % (name, tname), v))
return '&'.join(result)
def marshal_tuple(name, seq):
@@ -538,7 +538,7 @@
return '%s_%s_%s' % (int(time.time()), os.getpid(), random())
def render(self):
-
+
h=self._headers
s=[]
@@ -611,4 +611,3 @@
username='brian',
password='123')
adav=Resource('http://tarzan.digicool.com/dev/dav/')
-
=== Zope/lib/python/webdav/common.py 1.16 => 1.17 ===
--- Zope/lib/python/webdav/common.py:1.16 Wed Aug 14 12:50:53 2002
+++ Zope/lib/python/webdav/common.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""Commonly used functions for WebDAV support modules."""
=== Zope/lib/python/webdav/davcmds.py 1.19 => 1.20 ===
--- Zope/lib/python/webdav/davcmds.py:1.19 Wed Aug 14 12:50:53 2002
+++ Zope/lib/python/webdav/davcmds.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""WebDAV xml request objects."""
@@ -54,7 +54,7 @@
self.propname=0
self.propnames=[]
self.parse(request)
-
+
def parse(self, request, dav='DAV:'):
self.depth=request.get_header('Depth', 'infinity')
if not (self.depth in ('0','1','infinity')):
@@ -107,7 +107,7 @@
if hasattr(aq_base(ps), 'dav__allprop'):
stats.append(ps.dav__allprop())
stats=''.join(stats) or '<d:status>200 OK</d:status>\n'
- result.write(stats)
+ result.write(stats)
elif self.propname:
stats=[]
for ps in propsets:
@@ -139,7 +139,7 @@
'</d:propstat>\n' % key
)
else: raise 'Bad Request', 'Invalid request'
- result.write('</d:response>\n')
+ result.write('</d:response>\n')
if depth in ('1', 'infinity') and iscol:
for ob in obj.objectValues():
if hasattr(ob,"meta_type"):
@@ -155,7 +155,7 @@
if dflag: ob._p_deactivate()
if not top: return result
result.write('</d:multistatus>')
-
+
return result.getvalue()
@@ -243,7 +243,7 @@
propset=propsets.get(ns, None)
if propset is None or not propset.hasProperty(name):
# removing a non-existing property is not an error!
- # according to RFC 2518
+ # according to RFC 2518
status='200 OK'
else:
try: propset._delProperty(name)
@@ -333,7 +333,7 @@
lock = LockItem(creator, self.owner, depth, self.timeout,
self.type, self.scope, token)
if token is None: token = lock.getLockToken()
-
+
except ValueError, valerrors:
errmsg = "412 Precondition Failed"
except:
@@ -361,7 +361,7 @@
errmsg = "403 Forbidden"
except:
errmsg = "403 Forbidden"
-
+
if errmsg:
if top and ((depth in (0, '0')) or (not iscol)):
# We don't need to raise multistatus errors
@@ -388,7 +388,7 @@
result.write('</d:multistatus>')
get_transaction().abort() # This *SHOULD* clear all succesful locks
return token, result.getvalue()
-
+
class Unlock:
""" Model an Unlock request """
@@ -408,7 +408,7 @@
method = getattr(obj, 'wl_delLock')
vld = getSecurityManager().validate(None,obj,'wl_delLock',method)
if vld: obj.wl_delLock(token)
- else:
+ else:
errmsg = "403 Forbidden"
elif not islockable:
# Only set an error message if the command is being applied
@@ -444,7 +444,7 @@
result.write('</d:multistatus>')
get_transaction().abort()
return result.getvalue()
-
+
class DeleteCollection:
""" With WriteLocks in the picture, deleting a collection involves
@@ -497,4 +497,3 @@
# element
result.write('</d:multistatus>\n')
return result.getvalue()
-
=== Zope/lib/python/webdav/xmltools.py 1.12 => 1.13 ===
--- Zope/lib/python/webdav/xmltools.py:1.12 Thu Nov 29 13:18:16 2001
+++ Zope/lib/python/webdav/xmltools.py Wed Aug 14 18:11:40 2002
@@ -1,14 +1,14 @@
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
+#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
-#
+#
##############################################################################
"""WebDAV XML parsing tools. Note that this module does just
@@ -49,7 +49,7 @@
def value(self): return self.__value__
def nodes(self): return self.__nodes__
def nskey(self): return self.__nskey__
-
+
def addNode(self, node):
self.__nodes__.append(node.__of__(self))
@@ -72,7 +72,7 @@
((ns is None) or (node.namespace()==ns)):
nodes.append(node)
return nodes
-
+
def __getitem__(self, n):
return self.__nodes__[n]
@@ -95,7 +95,7 @@
self.encoding=encoding
self.stdalone=stdalone
self.document=self
-
+
def toxml(self):
result=['<?xml version="1.0" encoding="%s"?>' % self.encoding]
for node in self.__nodes__:
@@ -105,10 +105,10 @@
#def __del__(self):
# self.document=None
# print 'bye!'
-
+
class Element(Node):
__type__=type_element
-
+
def __init__(self, name, attrs={}):
self.__name__ =name
self.__attrs__=[]
@@ -123,7 +123,7 @@
if len(parts) > 1:
self.__nskey__=parts[0]
self.__name__=':'.join(parts[1:])
-
+
def ns_parse(self):
nsdef=self.__nsdef__={}
for attr in self.attrs():
@@ -136,7 +136,7 @@
def fixup(self):
self.__attrs__=map(lambda n, s=self: n.__of__(s), self.__attrs__)
-
+
def get_attr(self, name, ns=None, default=None):
for attr in self.__attrs__:
if attr.name()==name and (ns is None) or (ns==attr.namespace()):
@@ -234,7 +234,7 @@
ns=self.__nskey__
if ns: ns='%s:' % ns
return ' %s%s="%s"' % (ns, self.__name__, self.__value__)
-
+
class Text(Node):
__name__='#text'
__type__=type_text
@@ -255,7 +255,7 @@
__name__='#entityref'
__type__=type_entityref
def __init__(self, val):
- self.__value__=val
+ self.__value__=val
def toxml(self):
return '&%s;' % self.__value__
@@ -292,12 +292,12 @@
Shared.DC.xml.xmllib.XMLParser.__init__(self)
self.root=None
self.node=None
-
+
def parse(self, data):
self.feed(data)
self.close()
return self.root
-
+
def add(self, node):
self.node.addNode(node)