getUsersOwnAddressBooks

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2017-02-14 09:21:33 +01:00
parent 7113af3f91
commit b8fcd3ce27
No known key found for this signature in database
GPG Key ID: FB5ACEED51955BF8
2 changed files with 28 additions and 1 deletions

View File

@ -195,6 +195,33 @@ class CardDavBackend implements BackendInterface, SyncSupport {
return array_values($addressBooks); return array_values($addressBooks);
} }
function getUsersOwnAddressBooks($principalUri) {
$principalUriOriginal = $principalUri;
$principalUri = $this->convertPrincipal($principalUri, true);
$query = $this->db->getQueryBuilder();
$query->select(['id', 'uri', 'displayname', 'principaluri', 'description', 'synctoken'])
->from('addressbooks')
->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri)));
$addressBooks = [];
$result = $query->execute();
while($row = $result->fetch()) {
$addressBooks[$row['id']] = [
'id' => $row['id'],
'uri' => $row['uri'],
'principaluri' => $this->convertPrincipal($row['principaluri'], false),
'{DAV:}displayname' => $row['displayname'],
'{' . Plugin::NS_CARDDAV . '}addressbook-description' => $row['description'],
'{http://calendarserver.org/ns/}getctag' => $row['synctoken'],
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
];
}
$result->closeCursor();
return array_values($addressBooks);
}
private function getUserDisplayName($uid) { private function getUserDisplayName($uid) {
if (!isset($this->userDisplayNames[$uid])) { if (!isset($this->userDisplayNames[$uid])) {
$user = $this->userManager->get($uid); $user = $this->userManager->get($uid);

View File

@ -96,7 +96,7 @@ class HookManager {
$uid = $params['uid']; $uid = $params['uid'];
$this->usersToDelete[$uid] = $this->userManager->get($uid); $this->usersToDelete[$uid] = $this->userManager->get($uid);
$this->calendarsToDelete = $this->calDav->getUsersOwnCalendars('principals/users/' . $uid); $this->calendarsToDelete = $this->calDav->getUsersOwnCalendars('principals/users/' . $uid);
$this->addressBooksToDelete = $this->cardDav->getAddressBooksForUser('principals/users/' . $uid); $this->addressBooksToDelete = $this->cardDav->getUsersOwnAddressBooks('principals/users/' . $uid);
} }
public function postDeleteUser($params) { public function postDeleteUser($params) {