Ejemplo n.º 1
0
 /**
  * @return array
  */
 public function AjaxContactUpdateSharedToAll()
 {
     $oAccount = $this->getDefaultAccountFromParam();
     $aContactsId = explode(',', $this->getParamValue('ContactsId', ''));
     $aContactsId = array_map('trim', $aContactsId);
     $bSharedToAll = '1' === $this->getParamValue('SharedToAll', '0');
     $iTenantId = $bSharedToAll ? $oAccount->IdTenant : null;
     if ($this->oApiCapability->IsPersonalContactsSupported($oAccount)) {
         $oApiContacts = $this->ApiContacts();
     }
     if ($oApiContacts && $this->oApiCapability->IsSharedContactsSupported($oAccount)) {
         foreach ($aContactsId as $sContactId) {
             $oContact = $oApiContacts->GetContactById($oAccount->IdUser, $sContactId, false, $iTenantId);
             if ($oContact) {
                 if ($oContact->SharedToAll) {
                     $oApiContacts->UpdateContactUserId($oContact, $oAccount->IdUser);
                 }
                 $oContact->SharedToAll = !$oContact->SharedToAll;
                 $oContact->IdUser = $oAccount->IdUser;
                 $oContact->IdDomain = $oAccount->IdDomain;
                 $oContact->IdTenant = $oAccount->IdTenant;
                 if (!$oApiContacts->UpdateContact($oContact)) {
                     switch ($oApiContacts->GetLastErrorCode()) {
                         case \Errs::Sabre_PreconditionFailed:
                             throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::ContactDataHasBeenModifiedByAnotherApplication);
                     }
                 }
             }
         }
         return $this->TrueResponse($oAccount, __FUNCTION__);
     } else {
         throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::ContactsNotAllowed);
     }
     return $this->FalseResponse($oAccount, __FUNCTION__);
 }