fixes dav share issue with owner
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
8cb7ce7b6e
commit
beb4b1c190
|
@ -130,6 +130,10 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
];
|
||||
}
|
||||
|
||||
if (!$this->isShared()) {
|
||||
return $acl;
|
||||
}
|
||||
|
||||
if ($this->getOwner() !== parent::getOwner()) {
|
||||
$acl[] = [
|
||||
'privilege' => '{DAV:}read',
|
||||
|
@ -159,14 +163,9 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
}
|
||||
|
||||
$acl = $this->caldavBackend->applyShareAcl($this->getResourceId(), $acl);
|
||||
|
||||
if (!$this->isShared()) {
|
||||
return $acl;
|
||||
}
|
||||
|
||||
$allowedPrincipals = [$this->getOwner(), parent::getOwner(), 'principals/system/public'];
|
||||
return array_filter($acl, function($rule) use ($allowedPrincipals) {
|
||||
return in_array($rule['principal'], $allowedPrincipals);
|
||||
return \in_array($rule['principal'], $allowedPrincipals, true);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -104,12 +104,17 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
|
|||
'privilege' => '{DAV:}read',
|
||||
'principal' => $this->getOwner(),
|
||||
'protected' => true,
|
||||
]];
|
||||
$acl[] = [
|
||||
],[
|
||||
'privilege' => '{DAV:}write',
|
||||
'principal' => $this->getOwner(),
|
||||
'protected' => true,
|
||||
];
|
||||
]
|
||||
];
|
||||
|
||||
if (!$this->isShared()) {
|
||||
return $acl;
|
||||
}
|
||||
|
||||
if ($this->getOwner() !== parent::getOwner()) {
|
||||
$acl[] = [
|
||||
'privilege' => '{DAV:}read',
|
||||
|
@ -132,11 +137,11 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
|
|||
];
|
||||
}
|
||||
|
||||
if ($this->isShared()) {
|
||||
return $acl;
|
||||
}
|
||||
|
||||
return $this->carddavBackend->applyShareAcl($this->getResourceId(), $acl);
|
||||
$acl = $this->carddavBackend->applyShareAcl($this->getResourceId(), $acl);
|
||||
$allowedPrincipals = [$this->getOwner(), parent::getOwner(), 'principals/system/system'];
|
||||
return array_filter($acl, function($rule) use ($allowedPrincipals) {
|
||||
return \in_array($rule['principal'], $allowedPrincipals, true);
|
||||
});
|
||||
}
|
||||
|
||||
public function getChildACL() {
|
||||
|
|
Loading…
Reference in New Issue