From 5f05dd79ec34ef4fcc3b3133b15e449fab30ba4d Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Thu, 14 Aug 2025 15:28:13 +0200 Subject: [PATCH] fix(dav): clean up user's addressbook shares on deletion Signed-off-by: Christoph Wurst --- apps/dav/lib/CardDAV/CardDavBackend.php | 7 +++++++ apps/dav/lib/HookManager.php | 1 + 2 files changed, 8 insertions(+) diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 7ae7428cd81..0faef4bc7b8 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -1091,6 +1091,13 @@ class CardDavBackend implements BackendInterface, SyncSupport { }, $this->db); } + /** + * Delete all of a user's shares + */ + public function deleteAllSharesByUser(string $principaluri): void { + $this->sharingBackend->deleteAllSharesByUser($principaluri); + } + /** * Search contacts in a specific address-book * diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php index 9f4bc95d89b..f0fc1cdcf5f 100644 --- a/apps/dav/lib/HookManager.php +++ b/apps/dav/lib/HookManager.php @@ -102,6 +102,7 @@ class HookManager { ); } $this->calDav->deleteAllSharesByUser('principals/users/' . $uid); + $this->cardDav->deleteAllSharesByUser('principals/users/' . $uid); foreach ($this->addressBooksToDelete as $addressBook) { $this->cardDav->deleteAddressBook($addressBook['id']);