'{DAV:}read', 'principal' => '{DAV:}authenticated', 'protected' => true, ]; return $acl; } /** * Returns a specific child node, referenced by its name. * * @param string $name * * @return \Sabre\DAV\INode */ #[\Override] public function getChild($name) { $principal = $this->principalBackend->getPrincipalByPath($this->getPrincipalURL() . '/' . $name); if (!$principal) { throw new \Sabre\DAV\Exception\NotFound("Node with name $name was not found"); } if ($name === 'calendar-proxy-read') { return new ProxyRead($this->principalBackend, $this->principalProperties); } if ($name === 'calendar-proxy-write') { return new ProxyWrite($this->principalBackend, $this->principalProperties); } throw new \Sabre\DAV\Exception\NotFound("Node with name $name was not found"); } /** * Returns an array with all the child nodes. * * @return \Sabre\DAV\INode[] */ #[\Override] public function getChildren() { $r = []; if ($this->principalBackend->getPrincipalByPath($this->getPrincipalURL() . '/calendar-proxy-read')) { $r[] = new ProxyRead($this->principalBackend, $this->principalProperties); } if ($this->principalBackend->getPrincipalByPath($this->getPrincipalURL() . '/calendar-proxy-write')) { $r[] = new ProxyWrite($this->principalBackend, $this->principalProperties); } return $r; } }