Skip to content

Commit 191d9b7

Browse files
authored
Merge pull request #28657 from nextcloud/backport/28419/stable21
2 parents 513589f + 6269efd commit 191d9b7

File tree

2 files changed

+36
-20
lines changed

2 files changed

+36
-20
lines changed

apps/dav/lib/HookManager.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ class HookManager {
5858
/** @var array */
5959
private $calendarsToDelete = [];
6060

61+
/** @var array */
62+
private $subscriptionsToDelete = [];
63+
6164
/** @var array */
6265
private $addressBooksToDelete = [];
6366

@@ -112,9 +115,11 @@ public function postCreateUser($params) {
112115

113116
public function preDeleteUser($params) {
114117
$uid = $params['uid'];
118+
$userPrincipalUri = 'principals/users/' . $uid;
115119
$this->usersToDelete[$uid] = $this->userManager->get($uid);
116-
$this->calendarsToDelete = $this->calDav->getUsersOwnCalendars('principals/users/' . $uid);
117-
$this->addressBooksToDelete = $this->cardDav->getUsersOwnAddressBooks('principals/users/' . $uid);
120+
$this->calendarsToDelete = $this->calDav->getUsersOwnCalendars($userPrincipalUri);
121+
$this->subscriptionsToDelete = $this->calDav->getSubscriptionsForUser($userPrincipalUri);
122+
$this->addressBooksToDelete = $this->cardDav->getUsersOwnAddressBooks($userPrincipalUri);
118123
}
119124

120125
public function preUnassignedUserId($uid) {
@@ -130,6 +135,12 @@ public function postDeleteUser($params) {
130135
foreach ($this->calendarsToDelete as $calendar) {
131136
$this->calDav->deleteCalendar($calendar['id']);
132137
}
138+
139+
foreach ($this->subscriptionsToDelete as $subscription) {
140+
$this->calDav->deleteSubscription(
141+
$subscription['id'],
142+
);
143+
}
133144
$this->calDav->deleteAllSharesByUser('principals/users/' . $uid);
134145

135146
foreach ($this->addressBooksToDelete as $addressBook) {

apps/dav/tests/unit/DAV/HookManagerTest.php

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@
3838
use OCP\IL10N;
3939
use OCP\IUser;
4040
use OCP\IUserManager;
41+
use PHPUnit\Framework\MockObject\MockObject;
4142
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
4243
use Test\TestCase;
4344

4445
class HookManagerTest extends TestCase {
4546
/** @var IL10N */
4647
private $l10n;
4748

48-
/** @var EventDispatcherInterface | \PHPUnit\Framework\MockObject\MockObject */
49+
/** @var EventDispatcherInterface | MockObject */
4950
private $eventDispatcher;
5051

5152
protected function setUp(): void {
@@ -66,17 +67,17 @@ public function test() {
6667
->getMock();
6768
$user->expects($this->once())->method('getUID')->willReturn('newUser');
6869

69-
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
70+
/** @var IUserManager | MockObject $userManager */
7071
$userManager = $this->getMockBuilder(IUserManager::class)
7172
->disableOriginalConstructor()
7273
->getMock();
7374

74-
/** @var SyncService | \PHPUnit\Framework\MockObject\MockObject $syncService */
75+
/** @var SyncService | MockObject $syncService */
7576
$syncService = $this->getMockBuilder(SyncService::class)
7677
->disableOriginalConstructor()
7778
->getMock();
7879

79-
/** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject $cal */
80+
/** @var CalDavBackend | MockObject $cal */
8081
$cal = $this->getMockBuilder(CalDavBackend::class)
8182
->disableOriginalConstructor()
8283
->getMock();
@@ -85,7 +86,7 @@ public function test() {
8586
'principals/users/newUser',
8687
'personal', ['{DAV:}displayname' => 'Personal']);
8788

88-
/** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $card */
89+
/** @var CardDavBackend | MockObject $card */
8990
$card = $this->getMockBuilder(CardDavBackend::class)
9091
->disableOriginalConstructor()
9192
->getMock();
@@ -104,24 +105,24 @@ public function testWithExisting() {
104105
->getMock();
105106
$user->expects($this->once())->method('getUID')->willReturn('newUser');
106107

107-
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
108+
/** @var IUserManager | MockObject $userManager */
108109
$userManager = $this->getMockBuilder(IUserManager::class)
109110
->disableOriginalConstructor()
110111
->getMock();
111112

112-
/** @var SyncService | \PHPUnit\Framework\MockObject\MockObject $syncService */
113+
/** @var SyncService | MockObject $syncService */
113114
$syncService = $this->getMockBuilder(SyncService::class)
114115
->disableOriginalConstructor()
115116
->getMock();
116117

117-
/** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject $cal */
118+
/** @var CalDavBackend | MockObject $cal */
118119
$cal = $this->getMockBuilder(CalDavBackend::class)
119120
->disableOriginalConstructor()
120121
->getMock();
121122
$cal->expects($this->once())->method('getCalendarsForUserCount')->willReturn(1);
122123
$cal->expects($this->never())->method('createCalendar');
123124

124-
/** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $card */
125+
/** @var CardDavBackend | MockObject $card */
125126
$card = $this->getMockBuilder(CardDavBackend::class)
126127
->disableOriginalConstructor()
127128
->getMock();
@@ -138,17 +139,17 @@ public function testWithBirthdayCalendar() {
138139
->getMock();
139140
$user->expects($this->once())->method('getUID')->willReturn('newUser');
140141

141-
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
142+
/** @var IUserManager | MockObject $userManager */
142143
$userManager = $this->getMockBuilder(IUserManager::class)
143144
->disableOriginalConstructor()
144145
->getMock();
145146

146-
/** @var SyncService | \PHPUnit\Framework\MockObject\MockObject $syncService */
147+
/** @var SyncService | MockObject $syncService */
147148
$syncService = $this->getMockBuilder(SyncService::class)
148149
->disableOriginalConstructor()
149150
->getMock();
150151

151-
/** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject $cal */
152+
/** @var CalDavBackend | MockObject $cal */
152153
$cal = $this->getMockBuilder(CalDavBackend::class)
153154
->disableOriginalConstructor()
154155
->getMock();
@@ -157,7 +158,7 @@ public function testWithBirthdayCalendar() {
157158
'principals/users/newUser',
158159
'personal', ['{DAV:}displayname' => 'Personal']);
159160

160-
/** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $card */
161+
/** @var CardDavBackend | MockObject $card */
161162
$card = $this->getMockBuilder(CardDavBackend::class)
162163
->disableOriginalConstructor()
163164
->getMock();
@@ -175,30 +176,34 @@ public function testDeleteCalendar() {
175176
->disableOriginalConstructor()
176177
->getMock();
177178

178-
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
179+
/** @var IUserManager | MockObject $userManager */
179180
$userManager = $this->getMockBuilder(IUserManager::class)
180181
->disableOriginalConstructor()
181182
->getMock();
182183
$userManager->expects($this->once())->method('get')->willReturn($user);
183184

184-
/** @var SyncService | \PHPUnit\Framework\MockObject\MockObject $syncService */
185+
/** @var SyncService | MockObject $syncService */
185186
$syncService = $this->getMockBuilder(SyncService::class)
186187
->disableOriginalConstructor()
187188
->getMock();
188189
$syncService->expects($this->once())
189190
->method('deleteUser');
190191

191-
/** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject $cal */
192+
/** @var CalDavBackend | MockObject $cal */
192193
$cal = $this->getMockBuilder(CalDavBackend::class)
193194
->disableOriginalConstructor()
194195
->getMock();
195196
$cal->expects($this->once())->method('getUsersOwnCalendars')->willReturn([
196197
['id' => 'personal']
197198
]);
198-
$cal->expects($this->once())->method('deleteCalendar');
199+
$cal->expects($this->once())->method('getSubscriptionsForUser')->willReturn([
200+
['id' => 'some-subscription']
201+
]);
202+
$cal->expects($this->once())->method('deleteCalendar')->with('personal');
203+
$cal->expects($this->once())->method('deleteSubscription')->with('some-subscription');
199204
$cal->expects($this->once())->method('deleteAllSharesByUser');
200205

201-
/** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $card */
206+
/** @var CardDavBackend | MockObject $card */
202207
$card = $this->getMockBuilder(CardDavBackend::class)
203208
->disableOriginalConstructor()
204209
->getMock();

0 commit comments

Comments
 (0)