/**
  * 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;
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * 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);
 }
Example #5
0
 /**
  * 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);
 }