fix: CalDAV-Routen delegieren ab-N-URLs an CardDAV (Loeschen/Aendern)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker 2026-04-13 09:16:39 +02:00
parent b2567d379c
commit b398d6d800
1 changed files with 12 additions and 0 deletions

View File

@ -440,6 +440,9 @@ def _extract_time_range(root: ET.Element):
@dav_bp.route('/<username>/<cal_part>/<filename>', methods=['GET', 'HEAD'])
@basic_auth
def get_event(username, cal_part, filename):
if cal_part.startswith('ab-'):
from .carddav import ab_get
return ab_get(username=username, ab_part=cal_part, filename=filename)
user: User = request.dav_user
if username != user.username:
return Response('', 403)
@ -465,6 +468,9 @@ def get_event(username, cal_part, filename):
@dav_bp.route('/<username>/<cal_part>/<filename>', methods=['PUT'])
@basic_auth
def put_event(username, cal_part, filename):
if cal_part.startswith('ab-'):
from .carddav import ab_put
return ab_put(username=username, ab_part=cal_part, filename=filename)
user: User = request.dav_user
if username != user.username:
return Response('', 403)
@ -519,6 +525,9 @@ def put_event(username, cal_part, filename):
@dav_bp.route('/<username>/<cal_part>/<filename>', methods=['DELETE'])
@basic_auth
def delete_event(username, cal_part, filename):
if cal_part.startswith('ab-'):
from .carddav import ab_delete
return ab_delete(username=username, ab_part=cal_part, filename=filename)
user: User = request.dav_user
if username != user.username:
return Response('', 403)
@ -539,6 +548,9 @@ def delete_event(username, cal_part, filename):
@dav_bp.route('/<username>/<cal_part>', methods=['DELETE'])
@basic_auth
def delete_calendar(username, cal_part):
if cal_part.startswith('ab-'):
from .carddav import ab_delete_collection
return ab_delete_collection(username=username, ab_part=cal_part)
user: User = request.dav_user
if username != user.username:
return Response('', 403)