Commit eb6b6891 authored by Sidnei da Silva's avatar Sidnei da Silva

parent 2ea3d246
...@@ -42,6 +42,11 @@ def absattr(attr): ...@@ -42,6 +42,11 @@ def absattr(attr):
return attr() return attr()
return attr return attr
def urljoin(url, s):
url = url.rstrip('/')
s = s.lstrip('/')
return '/'.join((url, s))
def urlfix(url, s): def urlfix(url, s):
n=len(s) n=len(s)
if url[-n:]==s: url=url[:-n] if url[-n:]==s: url=url[:-n]
......
...@@ -17,7 +17,7 @@ $Id$ ...@@ -17,7 +17,7 @@ $Id$
""" """
import sys import sys
from common import absattr, aq_base, urlfix, urlbase from common import absattr, aq_base, urlfix, urlbase, urljoin
from OFS.PropertySheets import DAVProperties from OFS.PropertySheets import DAVProperties
from LockItem import LockItem from LockItem import LockItem
from WriteLockInterface import WriteLockInterface from WriteLockInterface import WriteLockInterface
...@@ -29,7 +29,6 @@ from AccessControl import getSecurityManager ...@@ -29,7 +29,6 @@ from AccessControl import getSecurityManager
from zExceptions import BadRequest, Forbidden from zExceptions import BadRequest, Forbidden
from common import isDavCollection from common import isDavCollection
from common import PreconditionFailed from common import PreconditionFailed
from ZConfig.url import urljoin
import transaction import transaction
def safe_quote(url, mark=r'%'): def safe_quote(url, mark=r'%'):
...@@ -163,8 +162,8 @@ class PropFind: ...@@ -163,8 +162,8 @@ class PropFind:
if dflag: if dflag:
ob._p_deactivate() ob._p_deactivate()
elif hasattr(ob, '__dav_resource__'): elif hasattr(ob, '__dav_resource__'):
uri=urljoin(url, absattr(ob.id)) uri = urljoin(url, absattr(ob.getId()))
depth=depth=='infinity' and depth or 0 depth = depth=='infinity' and depth or 0
self.apply(ob, uri, depth, result, top=0) self.apply(ob, uri, depth, result, top=0)
if dflag: if dflag:
ob._p_deactivate() ob._p_deactivate()
...@@ -403,7 +402,7 @@ class Lock: ...@@ -403,7 +402,7 @@ class Lock:
if depth == 'infinity' and iscol: if depth == 'infinity' and iscol:
for ob in obj.objectValues(): for ob in obj.objectValues():
if hasattr(obj, '__dav_resource__'): if hasattr(obj, '__dav_resource__'):
uri = urljoin(url, absattr(ob.id)) uri = urljoin(url, absattr(ob.getId()))
self.apply(ob, creator, depth, token, result, self.apply(ob, creator, depth, token, result,
uri, top=0) uri, top=0)
if not top: if not top:
...@@ -466,7 +465,7 @@ class Unlock: ...@@ -466,7 +465,7 @@ class Unlock:
for ob in obj.objectValues(): for ob in obj.objectValues():
if hasattr(ob, '__dav_resource__') and \ if hasattr(ob, '__dav_resource__') and \
WriteLockInterface.isImplementedBy(ob): WriteLockInterface.isImplementedBy(ob):
uri = urljoin(url, absattr(ob.id)) uri = urljoin(url, absattr(ob.getId()))
self.apply(ob, token, uri, result, top=0) self.apply(ob, token, uri, result, top=0)
if not top: if not top:
return result return result
...@@ -520,7 +519,7 @@ class DeleteCollection: ...@@ -520,7 +519,7 @@ class DeleteCollection:
for ob in obj.objectValues(): for ob in obj.objectValues():
dflag = hasattr(ob,'_p_changed') and (ob._p_changed == None) dflag = hasattr(ob,'_p_changed') and (ob._p_changed == None)
if hasattr(ob, '__dav_resource__'): if hasattr(ob, '__dav_resource__'):
uri = urljoin(url, absattr(ob.id)) uri = urljoin(url, absattr(ob.getId()))
self.apply(ob, token, user, uri, result, top=0) self.apply(ob, token, user, uri, result, top=0)
if dflag: if dflag:
ob._p_deactivate() ob._p_deactivate()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment