/** * This method is used to search for principals matching a set of * properties. * * This search is specifically used by RFC3744's principal-property-search * REPORT. You should at least allow searching on * http://sabredav.org/ns}email-address. * * The actual search should be a unicode-non-case-sensitive search. The * keys in searchProperties are the WebDAV property names, while the values * are the property values to search on. * * If multiple properties are being searched on, the search should be * AND'ed. * * This method should simply return a list of 'child names', which may be * used to call $this->getChild in the future. * * @param array $searchProperties * @return array */ public function searchPrincipals(array $searchProperties) { $result = $this->principalBackend->searchPrincipals($this->principalPrefix, $searchProperties); $r = array(); foreach ($result as $row) { list(, $r[]) = DAV\URLUtil::splitPath($row); } return $r; }
/** * Updates properties on this node. * * This method received a PropPatch object, which contains all the * information about the update. * * To update specific properties, call the 'handle' method on this object. * Read the PropPatch documentation for more information. * * @param DAV\PropPatch $propPatch * @return void */ function propPatch(DAV\PropPatch $propPatch) { return $this->principalBackend->updatePrincipal($this->principalProperties['uri'], $propPatch); }
/** * Updates this principals properties. * * @param array $mutations * @see Sabre\DAV\IProperties::updateProperties * @return bool|array */ public function updateProperties($mutations) { return $this->principalBackend->updatePrincipal($this->principalProperties['uri'], $mutations); }
/** * Sets a list of group members * * If this principal is a group, this method sets all the group members. * The list of members is always overwritten, never appended to. * * This method should throw an exception if the members could not be set. * * @param array $principals * @return void */ function setGroupMemberSet(array $principals) { $this->principalBackend->setGroupMemberSet($this->getPrincipalUrl(), $principals); }
/** * Constructor * * @param Sabre\DAVACL\PrincipalBackend\BackendInterface $principalBackend * @param SabreAccounts\DAV\Accounts\Backend\PDO $accountsBackend * @param mixed $userUri */ public function __construct(BackendInterface $principalBackend, PDO $accountsBackend, $userUri) { $this->principalBackend = $principalBackend; $this->accountsBackend = $accountsBackend; $this->principalInfo = $principalBackend->getPrincipalByPath($userUri); }
/** * Finds a principal by its URI. * * This method may receive any type of uri, but mailto: addresses will be * the most common. * * Implementation of this API is optional. It is currently used by the * CalDAV system to find principals based on their email addresses. If this * API is not implemented, some features may not work correctly. * * This method must return a relative principal path, or null, if the * principal was not found or you refuse to find it. * * @param string $uri * @return string */ function findByUri($uri) { return $this->principalBackend->findByUri($uri); }