Remote Synchronization (CardDAV) improvements:

now it supports address book url auto detection (and works with Google contacts, icloud and etc.)
This commit is contained in:
RainLoop Team 2015-05-09 02:43:56 +04:00
parent 92f2caf700
commit 1fb553e77e
249 changed files with 1338 additions and 1453 deletions

View file

@ -0,0 +1,35 @@
<?php
namespace SabreForRainLoop\DAVACL\Exception;
use SabreForRainLoop\DAV;
/**
* This exception is thrown when a client attempts to set conflicting
* permissions.
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class AceConflict extends DAV\Exception\Conflict {
/**
* Adds in extra information in the xml response.
*
* This method adds the {DAV:}no-ace-conflict 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:no-ace-conflict');
$errorNode->appendChild($np);
}
}

View file

@ -0,0 +1,83 @@
<?php
namespace SabreForRainLoop\DAVACL\Exception;
use SabreForRainLoop\DAV;
/**
* NeedPrivileges
*
* The 403-need privileges is thrown when a user didn't have the appropriate
* permissions to perform an operation
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class NeedPrivileges extends DAV\Exception\Forbidden {
/**
* The relevant uri
*
* @var string
*/
protected $uri;
/**
* The privileges the user didn't have.
*
* @var array
*/
protected $privileges;
/**
* Constructor
*
* @param string $uri
* @param array $privileges
*/
public function __construct($uri,array $privileges) {
$this->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]));
}
}
}

View file

@ -0,0 +1,35 @@
<?php
namespace SabreForRainLoop\DAVACL\Exception;
use SabreForRainLoop\DAV;
/**
* This exception is thrown when a user tries to set a privilege that's marked
* as abstract.
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class NoAbstract extends DAV\Exception\PreconditionFailed {
/**
* Adds in extra information in the xml response.
*
* This method adds the {DAV:}no-abstract 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:no-abstract');
$errorNode->appendChild($np);
}
}

View file

@ -0,0 +1,35 @@
<?php
namespace SabreForRainLoop\DAVACL\Exception;
use SabreForRainLoop\DAV;
/**
* If a client tried to set a privilege assigned to a non-existant principal,
* this exception will be thrown.
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class NotRecognizedPrincipal extends DAV\Exception\PreconditionFailed {
/**
* Adds in extra information in the xml response.
*
* This method adds the {DAV:}recognized-principal 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:recognized-principal');
$errorNode->appendChild($np);
}
}

View file

@ -0,0 +1,35 @@
<?php
namespace SabreForRainLoop\DAVACL\Exception;
use SabreForRainLoop\DAV;
/**
* If a client tried to set a privilege that doesn't exist, this exception will
* be thrown.
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class NotSupportedPrivilege extends DAV\Exception\PreconditionFailed {
/**
* Adds in extra information in the xml response.
*
* This method adds the {DAV:}not-supported-privilege 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:not-supported-privilege');
$errorNode->appendChild($np);
}
}