Skip to content

Commit 21d28c8

Browse files
Merge pull request #54424 from nextcloud/fix/dav/user-addressbook-clean-up
fix(dav): clean up user's addressbook shares on deletion
2 parents a3183f7 + 8e1a070 commit 21d28c8

3 files changed

Lines changed: 10 additions & 1 deletion

File tree

apps/dav/lib/CardDAV/CardDavBackend.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,13 @@ public function updateShares(IShareable $shareable, array $add, array $remove):
10911091
}, $this->db);
10921092
}
10931093

1094+
/**
1095+
* Delete all of a user's shares
1096+
*/
1097+
public function deleteAllSharesByUser(string $principaluri): void {
1098+
$this->sharingBackend->deleteAllSharesByUser($principaluri);
1099+
}
1100+
10941101
/**
10951102
* Search contacts in a specific address-book
10961103
*

apps/dav/lib/Listener/UserEventsListener.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ public function postDeleteUser(string $uid): void {
122122
);
123123
}
124124
$this->calDav->deleteAllSharesByUser('principals/users/' . $uid);
125+
$this->cardDav->deleteAllSharesByUser('principals/users/' . $uid);
125126

126127
foreach ($this->addressBooksToDelete[$uid] as $addressBook) {
127128
$this->cardDav->deleteAddressBook($addressBook['id']);

apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public function testWithBirthdayCalendar(): void {
132132
$this->userEventsListener->firstLogin($user);
133133
}
134134

135-
public function testDeleteCalendar(): void {
135+
public function testDeleteUser(): void {
136136
$user = $this->createMock(IUser::class);
137137
$user->expects($this->once())->method('getUID')->willReturn('newUser');
138138

@@ -148,6 +148,7 @@ public function testDeleteCalendar(): void {
148148
$this->calDavBackend->expects($this->once())->method('deleteCalendar')->with('personal');
149149
$this->calDavBackend->expects($this->once())->method('deleteSubscription')->with('some-subscription');
150150
$this->calDavBackend->expects($this->once())->method('deleteAllSharesByUser');
151+
$this->cardDavBackend->expects($this->once())->method('deleteAllSharesByUser');
151152

152153
$this->cardDavBackend->expects($this->once())->method('getUsersOwnAddressBooks')->willReturn([
153154
['id' => 'personal']

0 commit comments

Comments
 (0)