From 189aa18be83fead5997241207919de59ed14e134 Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Sun, 12 Apr 2026 14:09:01 +0200 Subject: [PATCH] fix: PROPFIND-Response-Href stimmt mit Anfrage-URL ueberein Bisher war der href in der Response immer /dav/, auch wenn DAVx5 einen PROPFIND auf / oder /.well-known/caldav gemacht hat. Das kann Clients verwirren - die erwarten, dass der Response-Pfad zum angefragten Pfad passt. current-user-principal zeigt weiterhin korrekt auf /dav/Adam/. Co-Authored-By: Claude Opus 4.6 (1M context) --- backend/app/dav/caldav.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/app/dav/caldav.py b/backend/app/dav/caldav.py index 489d679..70effce 100644 --- a/backend/app/dav/caldav.py +++ b/backend/app/dav/caldav.py @@ -255,9 +255,12 @@ def propfind(subpath=''): multistatus = ET.Element(_qn('d', 'multistatus')) parts = [p for p in subpath.split('/') if p] - # /dav/ (root): return principal pointer + # /dav/ (root) or / (when called via the app-level shortcut for DAVx5) if not parts: - multistatus.append(_root_response('/dav/', user)) + # Use the actual request path so Clients wie DAVx5 die href passend + # zu ihrer Anfrage sehen. + request_href = request.path if request.path.endswith('/') else request.path + '/' + multistatus.append(_root_response(request_href, user)) if depth != '0': multistatus.append(_principal_response(user)) return _xml_response(multistatus)