/** * @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__); }