From 50569114acdc64e7c7cae1498635d3f821517c30 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 7 Mar 2016 15:53:16 +0100 Subject: Initial commit of the Faster IT roundcube_calendar plugin distribution This includes: * Kolab plugins 3.2.9 (calendar and libcalendaring) * CalDAV driver 3.2.8 * .htaccess files for at least some security * SabreDAV updated to 1.8.12 (Jan 2015 release) * Support for CURLOPT_SSL_* settings to allow self-signed certificates * Small fixes & improved documentation --- .../OldSabre/DAVACL/Exception/NeedPrivileges.php | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 calendar/lib/SabreDAV/lib/OldSabre/DAVACL/Exception/NeedPrivileges.php (limited to 'calendar/lib/SabreDAV/lib/OldSabre/DAVACL/Exception/NeedPrivileges.php') diff --git a/calendar/lib/SabreDAV/lib/OldSabre/DAVACL/Exception/NeedPrivileges.php b/calendar/lib/SabreDAV/lib/OldSabre/DAVACL/Exception/NeedPrivileges.php new file mode 100644 index 0000000..c2c3ab1 --- /dev/null +++ b/calendar/lib/SabreDAV/lib/OldSabre/DAVACL/Exception/NeedPrivileges.php @@ -0,0 +1,83 @@ +uri = $uri; + $this->privileges = $privileges; + + parent::__construct('User did not have the required privileges (' . implode(',', $privileges) . ') for path "' . $uri . '"'); + + } + + /** + * Adds in extra information in the xml response. + * + * This method adds the {DAV:}need-privileges element as defined in rfc3744 + * + * @param DAV\Server $server + * @param \DOMElement $errorNode + * @return void + */ + public function serialize(DAV\Server $server,\DOMElement $errorNode) { + + $doc = $errorNode->ownerDocument; + + $np = $doc->createElementNS('DAV:','d:need-privileges'); + $errorNode->appendChild($np); + + foreach($this->privileges as $privilege) { + + $resource = $doc->createElementNS('DAV:','d:resource'); + $np->appendChild($resource); + + $resource->appendChild($doc->createElementNS('DAV:','d:href',$server->getBaseUri() . $this->uri)); + + $priv = $doc->createElementNS('DAV:','d:privilege'); + $resource->appendChild($priv); + + preg_match('/^{([^}]*)}(.*)$/',$privilege,$privilegeParts); + $priv->appendChild($doc->createElementNS($privilegeParts[1],'d:' . $privilegeParts[2])); + + + } + + } + +} + -- cgit v1.2.3