From 8e9216cd08fe33b46e23b113ff29c795799f835f Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Mon, 8 Jun 2026 21:59:24 +0200 Subject: [PATCH] sharing: report+propfind honor base_prefix on backmap --- radicale/app/propfind.py | 4 ++-- radicale/app/report.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/radicale/app/propfind.py b/radicale/app/propfind.py index 1a574c68..13d1f2fc 100644 --- a/radicale/app/propfind.py +++ b/radicale/app/propfind.py @@ -257,8 +257,8 @@ def xml_propfind_response( child_element.text = xmlutils.make_href(base_prefix, path) if share: # backmap - if child_element.text.startswith(share['PathMapped']): - child_element.text = str(share['PathOrToken']) + child_element.text.removeprefix(share['PathMapped']) + if child_element.text.startswith(base_prefix + share['PathMapped']): + child_element.text = base_prefix + str(share['PathOrToken']) + child_element.text.removeprefix(base_prefix + share['PathMapped']) if share_bday_automap and child_element.text.endswith(".vcf"): child_element.text = child_element.text.removesuffix(".vcf") + ".ics" element.append(child_element) diff --git a/radicale/app/report.py b/radicale/app/report.py index 05fda541..807a923a 100644 --- a/radicale/app/report.py +++ b/radicale/app/report.py @@ -739,11 +739,11 @@ def xml_item_response(base_prefix: str, href: str, href_element = ET.Element(xmlutils.make_clark("D:href")) href_element.text = xmlutils.make_href(base_prefix, href) - logger.trace("REPORT/xml_report: href=%r", href_element.text) + logger.trace("REPORT/xml_report: href=%r base_prefix=%r", href_element.text, base_prefix) if share: # backmap - if href_element.text.startswith(share['PathMapped']): - href_element.text = str(share['PathOrToken']) + href_element.text.removeprefix(share['PathMapped']) + if href_element.text.startswith(base_prefix + share['PathMapped']): + href_element.text = base_prefix + str(share['PathOrToken']) + href_element.text.removeprefix(base_prefix + share['PathMapped']) if share_bday_automap and href_element.text.endswith(".vcf"): href_element.text = href_element.text.removesuffix(".vcf") + ".ics" logger.trace("REPORT/xml_report: href=%r (backmapped)", href_element.text)