crmmobile 26.600.0 Безопасность

Crmmobile 26.500.0–26.600.0: свои вкладки, компактный список и проверка прав терминала

4 мин чтения Устаревших API: 1
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Обновление безопасности

Закрыта уязвимость или ослабленная проверка прав. Ставить в первую очередь.

В crmmobile 26.500.0 и 26.600.0 появились внешние вкладки CRM, создание связанных элементов из карточки клиента и компактный список. Обновление также закрывает доступ терминала оплаты к CRM-элементам, которые пользователь не может читать. Если у вас есть своё мобильное расширение, проверьте обработку прав воронки и её поля access.

Новое

Добавьте свою вкладку в CRM (26.500.0)

Событие crmmobile:onGetTabs передаёт существующие tabs, customSectionId и userPermissions. Обработчик возвращает EventResult::SUCCESS с массивом вкладок. Клиент загружает указанное JN-расширение и создаёт экспортированный компонент:

        use Bitrix\Main\Event;
use Bitrix\Main\EventManager;
use Bitrix\Main\EventResult;

EventManager::getInstance()->addEventHandler(
    'crmmobile',
    'onGetTabs',
    static function (Event $event): EventResult {
        $tabs = $event->getParameter('customSectionId') === null
            ? [[
                'type' => 'external',
                'id' => 'vendor::shipments',
                'title' => 'Отгрузки',
                'externalRender' => [
                    'module' => 'vendor/shipment-board',
                    'component' => 'ShipmentBoard',
                    'params' => [],
                ],
            ]]
            : [];

        return new EventResult(EventResult::SUCCESS, ['tabs' => $tabs]);
    },
);

    

Это пример описания вкладки для основного раздела CRM. Само расширение vendor/shipment-board нужно поставить отдельно, а его серверные действия закрыть правами на данные. Внешние вкладки идут после вкладок сущностей в порядке ответов обработчиков. Если модуля JN нет, клиент пишет ошибку в консоль. Штатный потребитель события — вкладка «Аналитика» из biconnectormobile.

Создавайте сделку из карточки клиента (26.500.0)

В контакте или компании появилось меню создания связанных лида, сделки, контакта или компании, счёта и предложения. Клиент уже подставлен в новую карточку. Меню учитывает право чтения исходного элемента, право добавления, тарифные ограничения конвертации и доступность инструмента; если действий нет, приложение сообщает об этом.

Для своих вызовов карточки есть параметры sourceEntityTypeId и sourceEntityId. Их нельзя смешивать с copy, client, contact_id или параметрами конвертации: сервер вернёт AccessDenied.

Переключите CRM на компактный список (26.600.0)

Новый вид показывает стадию чипом и запоминает выбор для пользователя и типа сущности. Предложение показывает дату актуальности, счёт — срок оплаты. У контакта и компании виден ответственный, у смарт-процесса также дата создания. Флаг Bitrix\CrmMobile\Public\Feature\CompactListItem включён по умолчанию.

Действие crmmobile.Kanban.setViewType принимает entityTypeId и type: default или compact. Оно отказывает при неизвестном виде, неподдерживаемой сущности или выключенном флаге. На сервере выбор хранится в пользовательской опции crmmobile/item_view_type_<тип>.

Единый фильтр из 26.500.0 пока выключен по умолчанию. При включении он использует общее с вебом хранилище фильтров; для ID поддержаны числовые сравнения и диапазон. Сортировки «По последней активности» и «По дате создания» появились в той же версии.

Что сломается

Терминал потребует чтение элемента

В 26.500.0 создание платежа проверяет canReadItem. В 26.600.0 префильтр CheckReadPermission закрывает также initialize и openPaymentPay. Раньше инициализация могла вернуть товарные позиции элемента по чужому ID; теперь пользователь без доступа получит отказ.

AJAX-контракт crmmobile.Terminal.Entity.createPayment сохранён. Если вы напрямую вызываете PHP-метод CreatePaymentAction::run(), передавайте UserPermissions первым аргументом: этот параметр добавлен в 26.500.0.

Читайте права воронки отдельно (26.500.0–26.600.0)

Настройка воронок, стадий и туннелей теперь учитывает гранулярные права CRM вместо одной проверки администратора. На старом CRM без нового фасада остаётся прежняя проверка. Новые nullable-флаги canManageFunnels, canManageStages, canManageTunnels и canManageCategoryAccess описывают разрешённые действия; null означает переход к старым признакам редактирования.

С 26.600.0 поле access в ответе воронки тоже может быть null, если пользователь не вправе редактировать её или управлять доступом. Клиенту, который ожидает строку, нужна проверка на null.

При изменении стадии в 26.500.0 появился контракт туннелей версии 2: tunnelsContractVersion=2 и явный clearTunnels. Пустой массив теряется при form-encoding мобильного транспорта. Старый клиент без версии по-прежнему очищает туннели, если ключа tunnels нет.

Если вы ловили Bitrix\CrmMobile\Kanban\Entity\ControllerStrategy\FieldNotFoundException, замените импорт на Bitrix\CrmMobile\Kanban\ControllerStrategy\FieldNotFoundException.

Мелочи и находки

  • В 26.500.0 чтение списка перестало затирать фильтр, который пользователь только что сохранил в шторке. Исправлена и потеря условия стадии в фильтрах смарт-процессов.
  • В 26.600.0 исправлен TypeError на туннеле с роботом без Delay.basis, а мастер конвертации завершает выбор сущностей даже при потерянном onViewRemoved.

Устаревшие и удалённые API в этой версии

Символ Статус Чем заменять
Bitrix\CrmMobile\Kanban\Entity\ControllerStrategy\FieldNotFoundException Удалено Bitrix\CrmMobile\Kanban\ControllerStrategy\FieldNotFoundException

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

tasks 26.800.0 Ломающее Свежее

Tasks 26.700.0–26.800.0: роботы с проверкой прав, чек-листы и новая длительность в REST

Tasks 26.700.0, 26.750.0 и 26.800.0 добавляют сортировку канбана, несколько чек-листов в действии создания задачи и робот «Добавить результат». Интеграциям потребуется проверить плановую длительность в REST, собственные действия БП и обработчики скрама. Роботы теперь проверяют права автора, а REST о…

5 мин
stafftrack 26.500.0 Ломающее Свежее

Stafftrack 26.400.0–26.500.0: офисы с геозонами и новые правила приёма чекинов

В Stafftrack 26.400.0 и 26.500.0 появился справочник офисов с геозонами, фотографиями и сигналами присутствия сотрудников. Одновременно изменились правила приёма точек маршрута и исчезли два публичных сервисных класса. Интеграциям, которые отправляют накопленные чекины или вызывают эти сервисы, потр…

4 мин
socialnetwork 26.400.0 Безопасность Свежее

Socialnetwork 26.300.0–26.400.0: массовая проверка прав на группы и защита ленты

Socialnetwork 26.300.0 и 26.400.0 закрывают доступ к чужим данным ленты и добавляют массовую проверку прав на группы. В проектах появились команды из оргструктуры и встраиваемый блок информации, а коллабы без extranet принимают только внутренних участников. Проверьте свои приглашения, ссылки на скра…

4 мин
sign 26.1000.0 Ломающее Свежее

Sign 26.1000.0: процессы КЭДО, цепочка роботов и лимит в 1000 подписантов

Sign 26.1000.0 добавляет запуск кадровых процессов и цепочку роботов «черновик → настройка → отправка», обе возможности по умолчанию выключены. Одновременно появился жёсткий лимит в 1000 уникальных подписантов. На портале с крупными отделами проверьте массовую отправку документов до обновления.

4 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти