[I128-2500] Слияние записей: служебные SID и авторизация создаются через Security


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2500] Слияние записей: служебные SID и авторизация создаются через Security📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль MergeRecords - Слияние записей

Завершено: 28.06.2026 00:03

Проблема: В модуле MergeRecords при слиянии записей служебное поле 113 частично формируется напрямую: SID записиисточника назначается через `$sr>EnsureSid(), а авторизационная записьAUTHдобавляется ручнымFieldAddA(). Эти операции обходят централизованный слой Security для материализации служебного поля113`.

Решение: Назначение SID записиисточника в URLмержерах переводится на Security::EnsurePhysicalSid(), а создание авторизационного поля при подготовке читательской записи — на Security::MaterializeAuth(). Поведение слияния для пользователя не меняется: связи, URL и авторизационные данные продолжают переноситься, но служебное поле создается через общий механизм Security.

Технические подробности: В modules/MergeRecords/FieldMergers/url.inc прямые вызовы $sr~~>EnsureSid() заменяются на UseModule('Security')~~>EnsurePhysicalSid($sr). В modules/MergeRecords/__call/sprepareRDR.inc прямое добавление AUTHполя заменяется на `UseModule('Security')>MaterializeAuth()`.

Документация: Изменения документации не требуются: алгоритм слияния и пользовательский сценарий не меняются, исправляется внутренний способ записи служебных данных.

-

1. Связанные задачи

1.1. 🔗 blocks: I128-2487

[I128-2487] Security: служебное поле 113 создается без явного действия безопасности Статус: Завершено | Автор: Ilya Mikhaylenko