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()) {
|
if ($this->getOwner() !== parent::getOwner()) {
|
||||||
$acl[] = [
|
$acl[] = [
|
||||||
'privilege' => '{DAV:}read',
|
'privilege' => '{DAV:}read',
|
||||||
|
@ -159,14 +163,9 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
||||||
}
|
}
|
||||||
|
|
||||||
$acl = $this->caldavBackend->applyShareAcl($this->getResourceId(), $acl);
|
$acl = $this->caldavBackend->applyShareAcl($this->getResourceId(), $acl);
|
||||||
|
|
||||||
if (!$this->isShared()) {
|
|
||||||
return $acl;
|
|
||||||
}
|
|
||||||
|
|
||||||
$allowedPrincipals = [$this->getOwner(), parent::getOwner(), 'principals/system/public'];
|
$allowedPrincipals = [$this->getOwner(), parent::getOwner(), 'principals/system/public'];
|
||||||
return array_filter($acl, function($rule) use ($allowedPrincipals) {
|
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',
|
'privilege' => '{DAV:}read',
|
||||||
'principal' => $this->getOwner(),
|
'principal' => $this->getOwner(),
|
||||||
'protected' => true,
|
'protected' => true,
|
||||||
]];
|
],[
|
||||||
$acl[] = [
|
|
||||||
'privilege' => '{DAV:}write',
|
'privilege' => '{DAV:}write',
|
||||||
'principal' => $this->getOwner(),
|
'principal' => $this->getOwner(),
|
||||||
'protected' => true,
|
'protected' => true,
|
||||||
];
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!$this->isShared()) {
|
||||||
|
return $acl;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->getOwner() !== parent::getOwner()) {
|
if ($this->getOwner() !== parent::getOwner()) {
|
||||||
$acl[] = [
|
$acl[] = [
|
||||||
'privilege' => '{DAV:}read',
|
'privilege' => '{DAV:}read',
|
||||||
|
@ -132,11 +137,11 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->isShared()) {
|
$acl = $this->carddavBackend->applyShareAcl($this->getResourceId(), $acl);
|
||||||
return $acl;
|
$allowedPrincipals = [$this->getOwner(), parent::getOwner(), 'principals/system/system'];
|
||||||
}
|
return array_filter($acl, function($rule) use ($allowedPrincipals) {
|
||||||
|
return \in_array($rule['principal'], $allowedPrincipals, true);
|
||||||
return $this->carddavBackend->applyShareAcl($this->getResourceId(), $acl);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getChildACL() {
|
public function getChildACL() {
|
||||||
|
|
Loading…
Reference in New Issue