В современных CRM-системах, таких как Битрикс24, важной задачей становится обеспечение конфиденциальности клиентских данных. Одной из острых проблем является отображение номеров телефонов клиентов в названиях сущностей, что может приводить к несанкционированному доступу к информации. Чтобы предотвратить такие ситуации, возникает необходимость скрывать номера телефонов в названиях, оставляя доступ к полной информации только тем пользователям, которым это необходимо. Для этого воспользуемся кодом ниже.
Нужно привести файл /opt/itgrix_bx/customizer/actions/post_registration.php к виду:
<?php/** * @varstring $action "post_registration" * * Подробное описание в документации Itgrix: * https://docs.itgrix.ru/custom_bx * * Вывод в лог можно сделать так: * $this->logDebug($message); * Функции для вывода с другим уровнем логирования: logInfo, logWarn, logError. * * Запросы в Битрикс24 реализованы в классе Bitrix (lib/crm.php) * Подробности и примеры в документации Itgrix: * https://docs.itgrix.ru/custom_bx/zaprosy-v-bitriks-iz-kastomizacii * * Дла запросов в БД Asterisk предусмотрены функции (lib/Utils.php): * Utils::mysqliQuery($sql, $getResult); - запрос через php-mysqli * Utils::mysqlClcQuery($sql, $getResult); - запрос через MySQL Command-Line Client */// Нужно вернуть только state, остальное игнорируется$this->logDebug('params: '.json_encode($params));$newFields =array();functionmakeErrorRetval($data) {returnarray('state'=>'error','data'=> $data, );}if (isset($params['call_full']['registration']['created_lead_id'])&&!empty($params['call_full']['registration']['created_lead_id'])) { $leadId = $params['call_full']['registration']['created_lead_id'];$this->logDebug('created_lead_id: '. $leadId);$this->logDebug('type: '.json_encode($params['call_full']['channel']['type'])); $wasAnswered =isset($params['call_full']['channel']['was_answered'])&& $params['call_full']['channel']['was_answered'];if ($params['call_full']['channel']['type'] =='incoming') { $type ='Входящий ';if (!$wasAnswered) { $type .='пропущенный '; } } elseif ($params['call_full']['channel']['type'] =='outgoing') { $type ='Исходящий ';if (!$wasAnswered) { $type .='неотвеченный '; } } $newFields =array('TITLE'=> $type .'звонок',//изменяем название );$this->logDebug('newFields: '.json_encode($newFields, JSON_UNESCAPED_UNICODE)); $updateResult =Bitrix::updateLead($leadId, $newFields,array());if ($updateResult ===false) {returnmakeErrorRetval(sprintf("Failed to update lead ID '%s'", $leadId)); }} else {$this->logDebug("No lead was created, do nothing");}returnarray('state'=>'success',);