aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/CalDAV/Principal
diff options
context:
space:
mode:
authorChristoph Seitz <christoph.seitz@posteo.de>2017-10-01 16:03:30 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2017-12-11 16:04:55 +0100
commit787e3d51b454c072947ed0df5426ad70b9814b8f (patch)
treecd1d6f324e0c578bda4b33c72ca57cbf225752df /apps/dav/lib/CalDAV/Principal
parent80b27fdb93ac0c170d0b5e214f67a2eff6c366ad (diff)
downloadnextcloud-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.php45
-rw-r--r--apps/dav/lib/CalDAV/Principal/User.php55
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;
+ }
+
+}