Ejemplo n.º 1
0
 /**
  * @return array
  */
 public function AjaxContactUpdate()
 {
     $oAccount = $this->getDefaultAccountFromParam();
     $bGlobal = '1' === $this->getParamValue('Global', '0');
     $sContactId = $this->getParamValue('ContactId', '');
     $bSharedToAll = '1' === $this->getParamValue('SharedToAll', '0');
     $iTenantId = $bSharedToAll ? $oAccount->IdTenant : null;
     if ($bGlobal && $this->oApiCapability->IsGlobalContactsSupported($oAccount, true)) {
         $oApiContacts = $this->ApiGContacts();
     } else {
         if (!$bGlobal && $this->oApiCapability->IsPersonalContactsSupported($oAccount)) {
             $oApiContacts = $this->ApiContacts();
         }
     }
     if ($oApiContacts) {
         $oContact = $oApiContacts->GetContactById($bGlobal ? $oAccount : $oAccount->IdUser, $sContactId, false, $iTenantId);
         if ($oContact) {
             $this->populateContactObject($oContact, $oContact->ItsMe);
             if ($oApiContacts->UpdateContact($oContact)) {
                 return $this->TrueResponse($oAccount, __FUNCTION__);
             } else {
                 switch ($oApiContacts->GetLastErrorCode()) {
                     case \Errs::Sabre_PreconditionFailed:
                         throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::ContactDataHasBeenModifiedByAnotherApplication);
                 }
             }
         }
     } else {
         throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::ContactsNotAllowed);
     }
     return $this->FalseResponse($oAccount, __FUNCTION__);
 }
Ejemplo n.º 2
0
 /**
  * @param string $path
  * @param \Sabre\DAV\INode $node
  * @param array $requestedProperties
  * @param array $returnedProperties
  * @return void
  */
 public function beforeGetProperties($path, \Sabre\DAV\INode $node, &$requestedProperties, &$returnedProperties)
 {
     $oAccount = $this->getAccount();
     if (isset($oAccount)) {
         $carddavPlugin = $this->getPlugin('Sabre\\CardDAV\\Plugin');
         if (null !== $oAccount && isset($carddavPlugin) && $this->oApiCapaManager->IsGlobalContactsSupported($oAccount, false)) {
             $carddavPlugin->directories = array('gab');
         }
     }
 }