[Zope-Checkins] CVS: Zope/lib/python/webdav - common.py:1.15 LockItem.py:1.6
Andreas Jung
andreas@digicool.com
Wed, 9 Jan 2002 13:38:12 -0500
Update of /cvs-repository/Zope/lib/python/webdav
In directory cvs.zope.org:/tmp/cvs-serv23191/webdav
Modified Files:
common.py LockItem.py
Log Message:
Collector #126: merge from 2.5 branch fixes LOCK-stealing problem
with cadaver
=== Zope/lib/python/webdav/common.py 1.14 => 1.15 ===
from App.Common import iso8601_date, rfc850_date, rfc1123_date
from App.Common import aq_base
+import random
+
+_randGen = random.Random(time.time())
def absattr(attr):
if callable(attr):
@@ -53,10 +56,10 @@
def generateLockToken():
# Generate a lock token
- # XXX This is simple right now, just lifted from the original shortcut
- # in Resource.dav__genlocktoken, but should be replaced by something
- # better.
- return 'AA9F6414-1D77-11D3-B825-00105A989226:%.03f' % time.time()
+ return '%s-%s-00105A989226:%.03f' % \
+ (_randGen.random(),_randGen.random(),time.time())
+
+
def tokenFinder(token):
# takes a string like '<opaquelocktoken:afsdfadfadf> and returns the token
=== Zope/lib/python/webdav/LockItem.py 1.5 => 1.6 ===
__version__ = "$Revision$"[11:-2]
-
from Globals import Persistent
from WriteLockInterface import LockItemInterface
from AccessControl import ClassSecurityInfo
@@ -142,7 +141,10 @@
def getLockScope(self):
return self._lockscope
- def asLockDiscoveryProperty(self, ns='d'):
+ def asLockDiscoveryProperty(self, ns='d',fake=0):
+
+ if fake: token = 'this-is-a-faked-no-permission-token'
+ else: token = self._token
s = (' <%(ns)s:activelock>\n'
' <%(ns)s:locktype><%(ns)s:%(locktype)s/></%(ns)s:locktype>\n'
' <%(ns)s:lockscope><%(ns)s:%(lockscope)s/></%(ns)s:lockscope>\n'
@@ -160,11 +162,12 @@
'depth': self._depth,
'owner': self._owner,
'timeout': self.getTimeoutString(),
- 'locktoken': self._token,
+ 'locktoken': token,
}
return s
def asXML(self):
+
s = """<?xml version="1.0" encoding="utf-8" ?>
<d:prop xmlns:d="DAV:">
<d:lockdiscovery>