mirror of
https://github.com/nextcloud/server.git
synced 2026-03-09 09:51:03 -04:00
fix(dav): calculate permissions based on addressbook principal
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
4e9fbddceb
commit
efd80b5ce0
2 changed files with 13 additions and 8 deletions
|
|
@ -202,6 +202,10 @@ class AddressBookImpl implements IAddressBookEnabled {
|
|||
$permissions = $this->addressBook->getACL();
|
||||
$result = 0;
|
||||
foreach ($permissions as $permission) {
|
||||
if ($this->addressBookInfo['principaluri'] !== $permission['principal']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch ($permission['privilege']) {
|
||||
case '{DAV:}read':
|
||||
$result |= Constants::PERMISSION_READ;
|
||||
|
|
|
|||
|
|
@ -287,14 +287,15 @@ class AddressBookImplTest extends TestCase {
|
|||
public function dataTestGetPermissions() {
|
||||
return [
|
||||
[[], 0],
|
||||
[[['privilege' => '{DAV:}read']], 1],
|
||||
[[['privilege' => '{DAV:}write']], 6],
|
||||
[[['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 7],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}write']], 31],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write'],['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system']], 1],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'], ['privilege' => '{DAV:}write', 'principal' => 'principals/someone/else']], 1],
|
||||
[[['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 6],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 7],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue