@ -23,6 +23,7 @@ namespace OCA\DAV\CardDAV;
use OCA\DAV\DAV\Sharing\IShareable;
use OCA\DAV\DAV\Sharing\IShareable;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\PropPatch;
class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
@ -83,14 +84,14 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
}
}
// add the current user
// add the current user
if (isset($this->addressBookInfo['{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . ' }owner-principal'])) {
if (isset($this->addressBookInfo['{http://owncloud.org/ns }owner-principal'])) {
$owner = $this->addressBookInfo['{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . ' }owner-principal'];
$owner = $this->addressBookInfo['{http://owncloud.org/ns }owner-principal'];
$acl[] = [
$acl[] = [
'privilege' => '{DAV:}read',
'privilege' => '{DAV:}read',
'principal' => $owner,
'principal' => $owner,
'protected' => true,
'protected' => true,
];
];
if ($this->addressBookInfo['{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . ' }read-only']) {
if ($this->addressBookInfo['{http://owncloud.org/ns }read-only']) {
$acl[] = [
$acl[] = [
'privilege' => '{DAV:}write',
'privilege' => '{DAV:}write',
'principal' => $owner,
'principal' => $owner,
@ -162,6 +163,13 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable {
parent::delete();
parent::delete();
}
}
function propPatch(PropPatch $propPatch) {
if (isset($this->addressBookInfo['{http://owncloud.org/ns}owner-principal'])) {
throw new Forbidden();
}
parent::propPatch($propPatch);
}
public function getContactsGroups() {
public function getContactsGroups() {
/** @var CardDavBackend $cardDavBackend */
/** @var CardDavBackend $cardDavBackend */
$cardDavBackend = $this->carddavBackend;
$cardDavBackend = $this->carddavBackend;