Убираем номера телефонов из названий сущностей

В современных CRM-системах, таких как Битрикс24, важной задачей становится обеспечение конфиденциальности клиентских данных. Одной из острых проблем является отображение номеров телефонов клиентов в названиях сущностей, что может приводить к несанкционированному доступу к информации. Чтобы предотвратить такие ситуации, возникает необходимость скрывать номера телефонов в названиях, оставляя доступ к полной информации только тем пользователям, которым это необходимо. Для этого воспользуемся кодом ниже.

Нужно привести файл /opt/itgrix_bx/customizer/actions/post_registration.php к виду:

<?php
/**
 * @var string $action "post_registration"
 *
 * Подробное описание в документации Itgrix:
 * /custom_bx
 *
 * Вывод в лог можно сделать так:
 *   $this->logDebug($message);
 * Функции для вывода с другим уровнем логирования: logInfo, logWarn, logError.
 *
 * Запросы в Битрикс24 реализованы в классе Bitrix (lib/crm.php)
 * Подробности и примеры в документации Itgrix:
 * /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();
function makeErrorRetval($data) {
    return array(
        '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 .= 'пропущенный ';
        }
    } else if ($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) {
        return makeErrorRetval(sprintf("Failed to update lead ID '%s'", $leadId));
    }
} else {
    $this->logDebug("No lead was created, do nothing");
}

return array(
    'state' => 'success',
);