vibecodeconnector 26.450.0 Заметное

Vibecodeconnector 26.300.0–26.450.0: ссылки на приложения, правка карточки и каталог только для сотрудников

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

Модуль «Интеграция с Битрикс24 Вайбкод» связывает портал с платформой Битрикс24 Вайбкод и ведёт в мессенджере каталог вайбкод-приложений и ботов. В коробочный Битрикс24 одним днём пришли три его версии: 26.300.0, 26.400.0 и 26.450.0. Последняя правит только облачное лицензирование Vibe+ и в коробке ничего не меняет. Своим приложением теперь можно поделиться и отредактировать его прямо из каталога, сам каталог видят только сотрудники, а на новой коробочной установке он выключен.

Новое

Делитесь приложением и выдавайте ссылку (26.300.0)

В меню своего приложения появились пункты «Поделиться» и «Удалить», а из меню всех карточек убрали «Открыть в Вайбкод» и «Открыть в чате». В диалоге «Поделиться» владелец выбирает, кто получит доступ: только он сам, указанные сотрудники и отделы (до 200 сотрудников и до 200 отделов), все сотрудники портала, все, у кого есть Битрикс24, или все без авторизации. Для людей вне компании есть публичная ссылка со сроком от 5 минут до 10 лет и галкой «Требовать вход через Битрикс24».

Менять доступ может владелец или администратор портала, и только у приложений, не у ботов. Настройки хранит платформа, портал пересылает ей запросы. «Удалить» тоже ведёт на платформу. На портале приложение не удаляется, диалог отправляет на его страницу редактирования.

Ещё владелец теперь может скрыть из каталога собственное приложение, раньше не мог.

Правьте название, описание и иконку (26.400.0)

Пункт «Настройки приложения» в меню своей карточки открывает редактирование. Название от 2 до 100 символов, описание до 500. Иконку можно загрузить или удалить. Файл до 5 МБ и 4 Мп, PNG, JPEG, GIF, WEBP или BMP; формат модуль определяет по содержимому, а картинку ужимает до 256 px. Правка сразу уходит на платформу, и если синхронизация не удалась, портал откатывает изменения и удаляет загруженную иконку.

Экшен для своего интерфейса называется vibecodeconnector.Catalog.update: POST, параметры catalogItemId, title, description, iconAction (replace или delete, без него иконка не меняется), файл в поле icon. Запрос больше post_max_size PHP отбрасывает целиком, экшен это распознаёт и отвечает ошибкой ICON_TOO_LARGE.

У DTO CatalogItem, которые отдаёт Public\Provider\CatalogProvider, появился флаг isDescriptionDefault. Он равен true, когда владелец описание не писал и в description лежит текст по умолчанию.

Проверяйте, положен ли пользователю каталог (26.300.0, 26.400.0)

Экстранет-пользователи каталог не откроют. В 26.300.0 модуль перестал подключать им кнопку каталога, а с 26.400.0 вместо каталога им открывается заглушка «Просмотр каталога недоступен». Все экшены контроллера Catalog с 26.400.0 закрывает префильтр CheckCatalogAvailability. Если каталог на портале выключен или пользователь не интранетный, экшен вернёт ошибку CATALOG_NOT_AVAILABLE.

На сервере ту же проверку делает Public\Service\AvailabilityService. В нём два новых метода. isAvailableForUser() проверяет, что каталог включён и пользователь интранетный, а isAllowedForUser() смотрит только на тип пользователя. Сервис зарегистрирован в ServiceLocator, так что ссылку на каталог в своём меню можно прятать так:

        <?php declare(strict_types=1);

namespace Vendor\Portal\Integration\Vibecode;

use Bitrix\Main\DI\ServiceLocator;
use Bitrix\Main\Loader;
use Bitrix\Vibecodeconnector\Public\Service\AvailabilityService;

final class CatalogMenuVisibility
{
    public function isVisibleFor(int $userId): bool
    {
        if (!Loader::includeModule('vibecodeconnector')) {
            return false;
        }

        return ServiceLocator::getInstance()
            ->get(AvailabilityService::class)
            ->isAvailableForUser($userId);
    }
}

    

Включите каталог на новой коробке вручную (26.400.0)

Установщик теперь включает каталог, только если подключается модуль bitrix24 и зона портала ru. В коробке модуля bitrix24 нет, поэтому после свежей установки каталог выключен, пока администратор не отметит «Видимость на портале» в настройках модуля. Там же стоит вторая галка, «Открывать приложения внутри Битрикс24», и на новой коробке она тоже снята. Без неё страница открытия приложения после проверки доступа перенаправляет на адрес самого приложения, а до 26.300.0 отдавала ошибку OPEN_APP_DISABLED. На порталах, где модуль уже стоял, обе галки остаются как были.

Галка «Видимость на портале» вызывает AvailabilityService::setEnabled(). С 26.300.0 метод заодно включает и выключает кнопку вайбкода в мобильном мессенджере (опция immobile is_vibecode_button_available). Если раскатываете порталы миграциями, видимость включает такой шаг:

        <?php declare(strict_types=1);

use Bitrix\Main\DI\ServiceLocator;
use Bitrix\Main\Loader;
use Bitrix\Vibecodeconnector\Public\Service\AvailabilityService;

if (Loader::includeModule('vibecodeconnector')) {
    ServiceLocator::getInstance()->get(AvailabilityService::class)->setEnabled(true);
}

    

Не снимайте метку «новое» за пользователя (26.300.0)

Приложение перестаёт быть новым, как только пользователь увидел его в списке каталога. Раньше для этого его нужно было открыть. Веб-каталог открывается на вкладке «Новые», если там что-то есть, а на пустой возвращается к «Активным».

CatalogProvider::listAccessibleToUser() получил необязательный параметр markViewing и ещё два для постраничного вывода. Отметку просмотра ставит только вызов с markViewing: true. Если показываете приложения каталога в своём виджете, оставьте флаг выключенным, иначе виджет будет гасить метку «новое» раньше, чем пользователь откроет каталог.

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

  • Public\Command\Catalog\Item\UpdateCatalogItemCommandHandler::__invoke() раньше возвращал элемент каталога Internal\Entity\Catalog\CatalogItem, а с 26.400.0 возвращает UpdateCatalogItemCommandResult с полями item и displacedIconFileId. Ядро вызывает обработчик только из UpdateCatalogItemCommand, и в результате run() ключ item остался на месте. Если вы вызывали обработчик напрямую, берите элемент из ->item.
  • Синхронизация пользователей с платформой приехала (26.300.0) выключенной за флагом Internal\Config\Feature\UserEvents. Обработчики OnBeforeUserUpdate, OnAfterUserUpdate, OnAfterSetUserGroup и OnAfterUserDelete модуль регистрирует уже сейчас. Когда флаг включат, OnBeforeUserUpdate начнёт дописывать ключ PREV_ACTIVE в поля CUser::Update(), где есть ACTIVE, и ваши обработчики этих событий его тоже увидят.
  • В настройках модуля адрес активного подключения теперь вводится вручную и проверяется при сохранении, список известных адресов только подставляет значение в поле (26.400.0).

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

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

Подписаться

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

timeman 26.350.0 Заметное Свежее

Timeman 26.350.0: план дня пишется в нужную запись, блоки БП возвращают Saved

В timeman 26.350.0 для коробочного Битрикс24 блоки «Сохранить план на день» и «Сохранить отчёт сотрудника за день» из нового конструктора бизнес-процессов научились писать в заданную запись рабочего дня, оставлять Markdown как есть и сообщать, сохранилось ли (у отчёта новые настройки в конструкторе,…

2 мин
rpa 26.300.0 Безопасность Свежее

Rpa 26.300.0: права на перемещение элементов наконец проверяются

До RPA 26.300.0 `UserPermissions::canMoveItem()` сразу отвечал `true`, и любой сотрудник, кроме экстранет-пользователей, мог перетащить любой элемент на любую стадию, а права стадии на перемещение не учитывались. Теперь права проверяются, а тем, кто может только смотреть, `rpa.item.get` и `rpa.item….

3 мин
booking 26.500.100 Заметное Свежее

Booking 26.500.100: addList отвечает ошибкой, когда не создал ни одной брони, а четыре колонки дат стали DATETIME

В коробочный Битрикс24 пришёл booking 26.500.100 с двумя правками. AJAX-экшен `booking.api_v1.Booking.addList` теперь возвращает ошибку, если не создал ни одной брони. Апдейтер переводит четыре колонки дат с `TIMESTAMP` на `DATETIME`, и в `install/migrations/tables.php` они объявлены через `datetime…

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

Socialnetwork 26.200.0: XSS в заявках и списке участников, копирование проекта по праву редактирования и курсор в log.blogpost.get

Socialnetwork 26.200.0 закрывает XSS в списке участников проекта и в заявках в группы, подмену ссылок через название группы и утечку задач в контекст AI. Копировать проект теперь можно только с правом на редактирование. Администраторам, у которых стояли 26.100.0 или 26.150.0, стоит проверить права с…

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

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

на связи

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

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

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

Войти