diff options
author | Christoph Seitz <christoph.seitz@posteo.de> | 2017-10-01 16:03:30 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2017-12-11 16:04:55 +0100 |
commit | 787e3d51b454c072947ed0df5426ad70b9814b8f (patch) | |
tree | cd1d6f324e0c578bda4b33c72ca57cbf225752df /apps/dav/lib/CalDAV/Principal | |
parent | 80b27fdb93ac0c170d0b5e214f67a2eff6c366ad (diff) | |
download | nextcloud-server-787e3d51b454c072947ed0df5426ad70b9814b8f.tar.gz nextcloud-server-787e3d51b454c072947ed0df5426ad70b9814b8f.zip |
Fix functions to search for principals in the backend.
Add a "searchPrincipals" function to the NC principal backend.
Fix the "findByUri" function to respect the prefixPath.
Signed-off-by: Christoph Seitz <christoph.seitz@posteo.de>
Diffstat (limited to 'apps/dav/lib/CalDAV/Principal')
-rw-r--r-- | apps/dav/lib/CalDAV/Principal/Collection.php | 45 | ||||
-rw-r--r-- | apps/dav/lib/CalDAV/Principal/User.php | 55 |
2 files changed, 100 insertions, 0 deletions
diff --git a/apps/dav/lib/CalDAV/Principal/Collection.php b/apps/dav/lib/CalDAV/Principal/Collection.php new file mode 100644 index 00000000000..cadfc66c26b --- /dev/null +++ b/apps/dav/lib/CalDAV/Principal/Collection.php @@ -0,0 +1,45 @@ +<?php + +/** + * @copyright Copyright (c) 2017, Christoph Seitz <christoph.seitz@posteo.de> + * + * @author Christoph Seitz <christoph.seitz@posteo.de> + * + * @license GNU AGPL version 3 or any later version + * + * 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\CalDAV\Principal; + +use OCA\DAV\CalDAV\Principal\User; + +/** + * Class Collection + * + * @package OCA\DAV\CalDAV\Principal + */ +class Collection extends \Sabre\CalDAV\Principal\Collection { + + /** + * Returns a child object based on principal information + * + * @param array $principalInfo + * @return User + */ + function getChildForPrincipal(array $principalInfo) { + return new User($this->principalBackend, $principalInfo); + } + +} diff --git a/apps/dav/lib/CalDAV/Principal/User.php b/apps/dav/lib/CalDAV/Principal/User.php new file mode 100644 index 00000000000..85b0401e865 --- /dev/null +++ b/apps/dav/lib/CalDAV/Principal/User.php @@ -0,0 +1,55 @@ +<?php + +/** + * @copyright Copyright (c) 2017, Christoph Seitz <christoph.seitz@posteo.de> + * + * @author Christoph Seitz <christoph.seitz@posteo.de> + * + * @license GNU AGPL version 3 or any later version + * + * 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\CalDAV\Principal; + +/** + * Class User + * + * @package OCA\DAV\CalDAV\Principal + */ +class User extends \Sabre\CalDAV\Principal\User { + + /** + * Returns a list of ACE's for this node. + * + * Each ACE has the following properties: + * * 'privilege', a string such as {DAV:}read or {DAV:}write. These are + * currently the only supported privileges + * * 'principal', a url to the principal who owns the node + * * 'protected' (optional), indicating that this ACE is not allowed to + * be updated. + * + * @return array + */ + function getACL() { + $acl = parent::getACL(); + $acl[] = [ + 'privilege' => '{DAV:}read', + 'principal' => '{DAV:}authenticated', + 'protected' => true, + ]; + return $acl; + } + +} |