Browse Source

delete shares to an user

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
tags/v11.0RC2
Thomas Citharel 7 years ago
parent
commit
5215833fe4
No account linked to committer's email address

+ 10
- 0
apps/dav/lib/CalDAV/CalDavBackend.php View File

@@ -507,6 +507,16 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$this->sharingBackend->deleteAllShares($calendarId);
}

/**
* Delete all of an user's shares
*
* @param string $principaluri
* @return void
*/
function deleteAllSharesForUser($principaluri) {
$this->sharingBackend->deleteAllSharesByUser($principaluri);
}

/**
* Returns all calendar objects within a calendar.
*

+ 8
- 0
apps/dav/lib/DAV/Sharing/Backend.php View File

@@ -110,6 +110,14 @@ class Backend {
->execute();
}

public function deleteAllSharesByUser($principaluri) {
$query = $this->db->getQueryBuilder();
$query->delete('dav_shares')
->where($query->expr()->eq('principaluri', $query->createNamedParameter($principaluri)))
->andWhere($query->expr()->eq('type', $query->createNamedParameter($this->resourceType)))
->execute();
}

/**
* @param IShareable $shareable
* @param string $element

+ 1
- 0
apps/dav/lib/HookManager.php View File

@@ -98,6 +98,7 @@ class HookManager {
foreach ($calendarsToDelete as $calendar) {
$this->calDav->deleteCalendar($calendar['id']);
}
$this->calDav->deleteAllSharesForUser('principals/users/' . $uid);

$addressBooksToDelete = $this->cardDav->getAddressBooksForUser('principals/users/' . $uid);
foreach ($addressBooksToDelete as $addressBook) {

+ 1
- 0
apps/dav/tests/unit/DAV/HookManagerTest.php View File

@@ -172,6 +172,7 @@ class HookManagerTest extends TestCase {
['id' => 'personal']
]);
$cal->expects($this->once())->method('deleteCalendar');
$cal->expects($this->once())->method('deleteAllSharesForUser');

/** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $card */
$card = $this->getMockBuilder(CardDavBackend::class)

Loading…
Cancel
Save