/** * @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 \ProjectCore\Exceptions\ClientException(\ProjectCore\Notifications::ContactDataHasBeenModifiedByAnotherApplication); } } } } return $this->TrueResponse($oAccount, __FUNCTION__); } else { throw new \ProjectCore\Exceptions\ClientException(\ProjectCore\Notifications::ContactsNotAllowed); } return $this->FalseResponse($oAccount, __FUNCTION__); }