From a7f12b5face8df8ac85e158316cc8a046bd65b50 Mon Sep 17 00:00:00 2001 From: Unrud Date: Fri, 10 Mar 2017 22:14:13 +0100 Subject: [PATCH] PROPFIND: only one privilege per privilege element Before: After: --- radicale/xmlutils.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/radicale/xmlutils.py b/radicale/xmlutils.py index 375117c..153e2c4 100644 --- a/radicale/xmlutils.py +++ b/radicale/xmlutils.py @@ -669,14 +669,16 @@ def _propfind_response(base_prefix, path, item, props, user, write=False, tag.text = _href(base_prefix, ("/%s/" % user) if user else "/") element.append(tag) elif tag == _tag("D", "current-user-privilege-set"): - privilege = ET.Element(_tag("D", "privilege")) + privileges = [("D", "read")] if write: - privilege.append(ET.Element(_tag("D", "all"))) - privilege.append(ET.Element(_tag("D", "write"))) - privilege.append(ET.Element(_tag("D", "write-properties"))) - privilege.append(ET.Element(_tag("D", "write-content"))) - privilege.append(ET.Element(_tag("D", "read"))) - element.append(privilege) + privileges.append(("D", "all")) + privileges.append(("D", "write")) + privileges.append(("D", "write-properties")) + privileges.append(("D", "write-content")) + for ns, privilege_name in privileges: + privilege = ET.Element(_tag("D", "privilege")) + privilege.append(ET.Element(_tag(ns, privilege_name))) + element.append(privilege) elif tag == _tag("D", "supported-report-set"): for report_name in ( "principal-property-search", "sync-collection",