File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 5050 'OCA \\DAV \\CalDAV \\Outbox ' => $ baseDir . '/../lib/CalDAV/Outbox.php ' ,
5151 'OCA \\DAV \\CalDAV \\Plugin ' => $ baseDir . '/../lib/CalDAV/Plugin.php ' ,
5252 'OCA \\DAV \\CalDAV \\Principal \\Collection ' => $ baseDir . '/../lib/CalDAV/Principal/Collection.php ' ,
53+ 'OCA \\DAV \\CalDAV \\Principal \\ProxyRead ' => $ baseDir . '/../lib/CalDAV/Principal/ProxyRead.php ' ,
54+ 'OCA \\DAV \\CalDAV \\Principal \\ProxyWrite ' => $ baseDir . '/../lib/CalDAV/Principal/ProxyWrite.php ' ,
5355 'OCA \\DAV \\CalDAV \\Principal \\User ' => $ baseDir . '/../lib/CalDAV/Principal/User.php ' ,
5456 'OCA \\DAV \\CalDAV \\Proxy \\Proxy ' => $ baseDir . '/../lib/CalDAV/Proxy/Proxy.php ' ,
5557 'OCA \\DAV \\CalDAV \\Proxy \\ProxyMapper ' => $ baseDir . '/../lib/CalDAV/Proxy/ProxyMapper.php ' ,
Original file line number Diff line number Diff line change @@ -65,6 +65,8 @@ class ComposerStaticInitDAV
6565 'OCA \\DAV \\CalDAV \\Outbox ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Outbox.php ' ,
6666 'OCA \\DAV \\CalDAV \\Plugin ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Plugin.php ' ,
6767 'OCA \\DAV \\CalDAV \\Principal \\Collection ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Principal/Collection.php ' ,
68+ 'OCA \\DAV \\CalDAV \\Principal \\ProxyRead ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Principal/ProxyRead.php ' ,
69+ 'OCA \\DAV \\CalDAV \\Principal \\ProxyWrite ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Principal/ProxyWrite.php ' ,
6870 'OCA \\DAV \\CalDAV \\Principal \\User ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Principal/User.php ' ,
6971 'OCA \\DAV \\CalDAV \\Proxy \\Proxy ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Proxy/Proxy.php ' ,
7072 'OCA \\DAV \\CalDAV \\Proxy \\ProxyMapper ' => __DIR__ . '/.. ' . '/../lib/CalDAV/Proxy/ProxyMapper.php ' ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ /**
6+ * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
7+ * SPDX-License-Identifier: AGPL-3.0-or-later
8+ */
9+
10+ namespace OCA \DAV \CalDAV \Principal ;
11+
12+ use Sabre \DAVACL ;
13+
14+ class ProxyRead extends \Sabre \CalDAV \Principal \ProxyRead implements DAVACL \IACL {
15+ use DAVACL \ACLTrait;
16+
17+ /**
18+ * @inheritDoc
19+ */
20+ public function getOwner () {
21+ return $ this ->principalInfo ['uri ' ];
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ /**
6+ * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
7+ * SPDX-License-Identifier: AGPL-3.0-or-later
8+ */
9+
10+ namespace OCA \DAV \CalDAV \Principal ;
11+
12+ use Sabre \DAVACL ;
13+
14+ class ProxyWrite extends \Sabre \CalDAV \Principal \ProxyWrite implements DAVACL \IACL {
15+ use DAVACL \ACLTrait;
16+
17+ /**
18+ * @inheritDoc
19+ */
20+ public function getOwner () {
21+ return $ this ->principalInfo ['uri ' ];
22+ }
23+ }
Original file line number Diff line number Diff line change @@ -52,4 +52,44 @@ public function getACL() {
5252 ];
5353 return $ acl ;
5454 }
55+
56+ /**
57+ * Returns a specific child node, referenced by its name.
58+ *
59+ * @param string $name
60+ *
61+ * @return \Sabre\DAV\INode
62+ */
63+ public function getChild ($ name ) {
64+ $ principal = $ this ->principalBackend ->getPrincipalByPath ($ this ->getPrincipalURL () . '/ ' . $ name );
65+ if (!$ principal ) {
66+ throw new \Sabre \DAV \Exception \NotFound ("Node with name $ name was not found " );
67+ }
68+ if ($ name === 'calendar-proxy-read ' ) {
69+ return new ProxyRead ($ this ->principalBackend , $ this ->principalProperties );
70+ }
71+
72+ if ($ name === 'calendar-proxy-write ' ) {
73+ return new ProxyWrite ($ this ->principalBackend , $ this ->principalProperties );
74+ }
75+
76+ throw new \Sabre \DAV \Exception \NotFound ("Node with name $ name was not found " );
77+ }
78+
79+ /**
80+ * Returns an array with all the child nodes.
81+ *
82+ * @return \Sabre\DAV\INode[]
83+ */
84+ public function getChildren () {
85+ $ r = [];
86+ if ($ this ->principalBackend ->getPrincipalByPath ($ this ->getPrincipalURL () . '/calendar-proxy-read ' )) {
87+ $ r [] = new ProxyRead ($ this ->principalBackend , $ this ->principalProperties );
88+ }
89+ if ($ this ->principalBackend ->getPrincipalByPath ($ this ->getPrincipalURL () . '/calendar-proxy-write ' )) {
90+ $ r [] = new ProxyWrite ($ this ->principalBackend , $ this ->principalProperties );
91+ }
92+
93+ return $ r ;
94+ }
5595}
You can’t perform that action at this time.
0 commit comments