diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-11-30 15:10:06 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-12-02 09:14:41 +0100 |
commit | 1e8ad65288097a65cb53ba2c44284dc22e0f9b46 (patch) | |
tree | 38ad7c002ac702e4f88e1949009a02dcf7fee416 /apps | |
parent | df6fc6cc70ceb06e0b9d8a7ff9ce4cbf2f74e710 (diff) | |
download | nextcloud-server-1e8ad65288097a65cb53ba2c44284dc22e0f9b46.tar.gz nextcloud-server-1e8ad65288097a65cb53ba2c44284dc22e0f9b46.zip |
Add system principal to cal of each card
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dav/lib/carddav/addressbook.php | 10 | ||||
-rw-r--r-- | apps/dav/lib/carddav/card.php | 39 |
2 files changed, 49 insertions, 0 deletions
diff --git a/apps/dav/lib/carddav/addressbook.php b/apps/dav/lib/carddav/addressbook.php index 1e6ecf622da..507657e9682 100644 --- a/apps/dav/lib/carddav/addressbook.php +++ b/apps/dav/lib/carddav/addressbook.php @@ -3,6 +3,7 @@ namespace OCA\DAV\CardDAV; use OCA\DAV\CardDAV\Sharing\IShareableAddressBook; +use Sabre\DAV\Exception\NotFound; class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareableAddressBook { @@ -77,4 +78,13 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareableAddres return $acl; } + + function getChild($name) { + $obj = $this->carddavBackend->getCard($this->addressBookInfo['id'], $name); + if (!$obj) { + throw new NotFound('Card not found'); + } + return new Card($this->carddavBackend, $this->addressBookInfo, $obj); + } + } diff --git a/apps/dav/lib/carddav/card.php b/apps/dav/lib/carddav/card.php new file mode 100644 index 00000000000..cea0b1e41c7 --- /dev/null +++ b/apps/dav/lib/carddav/card.php @@ -0,0 +1,39 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\DAV\CardDAV; + +class Card extends \Sabre\CardDAV\Card { + + function getACL() { + $acl = parent::getACL(); + if ($this->getOwner() === 'principals/system/system') { + $acl[] = [ + 'privilege' => '{DAV:}read', + 'principal' => '{DAV:}authenticated', + 'protected' => true, + ]; + } + + return $acl; + } + +} |