Restore the Lightning + anonymous calendars support

This commit is contained in:
Guillaume Ayoub 2011-06-08 07:43:40 +02:00
parent ec9e410659
commit b8bcf65785
2 changed files with 8 additions and 5 deletions

View File

@ -194,7 +194,7 @@ class Calendar(object):
path = "/".join(attributes[:min(len(attributes), 2)])
path = path.replace("/", os.sep)
abs_path = os.path.join(FOLDER, path)
if os.path.isdir(abs_path) or len(attributes) == 1:
if os.path.isdir(abs_path):
if depth == "0":
result.append(cls(path, principal=True))
else:
@ -297,8 +297,6 @@ class Calendar(object):
def write(self, headers=None, items=None):
"""Write calendar with given parameters."""
if self.is_principal:
return
headers = headers or self.headers or (
Header("PRODID:-//Radicale//NONSGML Radicale Server//EN"),
Header("VERSION:2.0"))

View File

@ -264,7 +264,9 @@ def _propfind_response(path, item, props, user):
if tag == _tag("D", "getcontenttype"):
element.text = "text/calendar"
elif tag == _tag("D", "resourcetype"):
if not item.is_principal:
if item.is_principal:
tag = ET.Element(_tag("D", "principal"))
element.append(tag)
tag = ET.Element(_tag("C", "calendar"))
element.append(tag)
tag = ET.Element(_tag("D", "collection"))
@ -284,6 +286,9 @@ def _propfind_response(path, item, props, user):
# Not for calendars
elif tag == _tag("D", "getcontenttype"):
element.text = "text/calendar; component=%s" % item.tag.lower()
elif tag == _tag("D", "resourcetype"):
# resourcetype must be returned empty for non-collection elements
pass
else:
is404 = True