diff --git a/radicale/xmlutils.py b/radicale/xmlutils.py index 05767ce..0828e87 100644 --- a/radicale/xmlutils.py +++ b/radicale/xmlutils.py @@ -45,7 +45,7 @@ except ImportError: import re import xml.etree.ElementTree as ET -from . import client, config, ical +from . import client, config, ical, rights NAMESPACES = { @@ -300,11 +300,13 @@ def _propfind_response(path, item, props, user): element.append(tag) elif tag == _tag("D", "current-user-privilege-set"): privilege = ET.Element(_tag("D", "privilege")) - privilege.append(ET.Element(_tag("D", "all"))) + if rights.authorized(user, item, "w"): + privilege.append(ET.Element(_tag("D", "all"))) privilege.append(ET.Element(_tag("D", "read"))) - privilege.append(ET.Element(_tag("D", "write"))) - privilege.append(ET.Element(_tag("D", "write-properties"))) - privilege.append(ET.Element(_tag("D", "write-content"))) + if rights.authorized(user, item, "w"): + privilege.append(ET.Element(_tag("D", "write"))) + privilege.append(ET.Element(_tag("D", "write-properties"))) + privilege.append(ET.Element(_tag("D", "write-content"))) element.append(privilege) elif tag == _tag("D", "supported-report-set"): for report_name in (