Skip to content

Commit 676d123

Browse files
ChristophWurstbackportbot[bot]
authored andcommitted
fix(dav): calculate permissions based on addressbook principal
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
1 parent b248a29 commit 676d123

2 files changed

Lines changed: 13 additions & 8 deletions

File tree

apps/dav/lib/CardDAV/AddressBookImpl.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ public function getPermissions() {
177177
$permissions = $this->addressBook->getACL();
178178
$result = 0;
179179
foreach ($permissions as $permission) {
180+
if ($this->addressBookInfo['principaluri'] !== $permission['principal']) {
181+
continue;
182+
}
183+
180184
switch ($permission['privilege']) {
181185
case '{DAV:}read':
182186
$result |= Constants::PERMISSION_READ;

apps/dav/tests/unit/CardDAV/AddressBookImplTest.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -264,14 +264,15 @@ public function testGetPermissions($permissions, $expected): void {
264264
public function dataTestGetPermissions() {
265265
return [
266266
[[], 0],
267-
[[['privilege' => '{DAV:}read']], 1],
268-
[[['privilege' => '{DAV:}write']], 6],
269-
[[['privilege' => '{DAV:}all']], 31],
270-
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 7],
271-
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}all']], 31],
272-
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}write']], 31],
273-
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write'],['privilege' => '{DAV:}all']], 31],
274-
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 31],
267+
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system']], 1],
268+
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'], ['privilege' => '{DAV:}write', 'principal' => 'principals/someone/else']], 1],
269+
[[['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 6],
270+
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
271+
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 7],
272+
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
273+
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
274+
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
275+
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
275276
];
276277
}
277278

0 commit comments

Comments
 (0)