From cf0a13ff7919554c25b81ecede3e05e00184530e Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 28 Jun 2016 16:59:15 +0200 Subject: [PATCH] get only vcards which match both the address book id and the vcard uri --- apps/dav/lib/CardDAV/CardDavBackend.php | 2 +- apps/dav/tests/unit/CardDAV/CardDavBackendTest.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 2ad9f4778c92..39f76a4b4206 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -848,7 +848,7 @@ public function getContact($addressBookId, $uri) { $query = $this->db->getQueryBuilder(); $query->select('*')->from($this->dbCardsTable) ->where($query->expr()->eq('uri', $query->createNamedParameter($uri))) - ->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId))); + ->andWhere($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId))); $queryResult = $query->execute(); $contact = $queryResult->fetch(); $queryResult->closeCursor(); diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index 58a93befe681..203d4512a475 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -606,6 +606,10 @@ public function testGetContact() { $this->assertSame(5489543, (int)$result['lastmodified']); $this->assertSame('etag0', $result['etag']); $this->assertSame(120, (int)$result['size']); + + // this shouldn't return any result because 'uri1' is in address book 1 + $result = $this->backend->getContact(0, 'uri1'); + $this->assertEmpty($result); } public function testGetContactFail() {