Browse Source

fix(dav): ACLs for shared addressbooks

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
tags/v28.0.4rc1
Christoph Wurst 4 months ago
parent
commit
e6df2a4981
No account linked to committer's email address

+ 1
- 1
3rdparty

@@ -1 +1 @@
Subproject commit 9aabf1a490571ef88073d069222e9a232b772fc8
Subproject commit e8a165a3811f1b454694337aaff47c30888ca9fc

+ 6
- 1
apps/dav/lib/CardDAV/AddressBook.php View File

@@ -118,7 +118,7 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable, IMov
],
[
'privilege' => '{DAV:}write-properties',
'principal' => '{DAV:}authenticated',
'principal' => $this->getOwner(),
'protected' => true,
],
];
@@ -129,6 +129,11 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable, IMov
'principal' => '{DAV:}authenticated',
'protected' => true,
];
$acl[] = [
'privilege' => '{DAV:}write-properties',
'principal' => '{DAV:}authenticated',
'protected' => true,
];
}

if (!$this->isShared()) {

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

@@ -265,7 +265,7 @@ class Backend {
'principal' => $share['{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}principal'],
'protected' => true,
];
} elseif ($this->resourceType === 'calendar') {
} elseif (in_array($this->resourceType, ['calendar','addressbook'])) {
// Allow changing the properties of read only calendars,
// so users can change the visibility.
$acl[] = [

+ 1
- 1
apps/dav/tests/unit/CardDAV/AddressBookTest.php View File

@@ -169,7 +169,7 @@ class AddressBookTest extends TestCase {
'protected' => true
], [
'privilege' => '{DAV:}write-properties',
'principal' => '{DAV:}authenticated',
'principal' => $hasOwnerSet ? 'user1' : 'user2',
'protected' => true
]];
if ($hasOwnerSet) {

Loading…
Cancel
Save