НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2501] Электронная библиотека: служебные поля полного текста создаются через Security📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.2.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: Комплексное решение Электронная библиотека ИРБИС64/128
Завершено: 28.06.2026 00:01
Проблема:
В модуле FT часть служебных данных поля 113 формируется напрямую: SID записи полного текста назначается через $r->EnsureSid(), владелец/группа прав записывается прямой установкой подполя, а права доступа по IP и коллекциям добавляются ручным FieldAddA(). Это обходит централизованный слой Security для материализации служебного поля 113.
Решение:
Назначение SID записи полного текста переводится на Security::EnsurePhysicalSid(), установка владельца — на Security::SetOwnerSid(), а права доступа к документам по IP и коллекциям — на Security::MaterializeRight(). Формирование FT-информации в поле 113 вынесено в отдельный метод, чтобы сохранить структуру поля и убрать ручную сборку строки.
Технические подробности:
В modules/FT/api.php прямой вызов $r~~>EnsureSid() заменяется на UseModule('Security')~~>EnsurePhysicalSid($r). В modules/FT/Actions/SetFolderMulty.inc ручная установка владельца заменяется на UseModule('Security')~~>SetOwnerSid(). В modules/FT/ft_document.inc права SEC создаются через Security::MaterializeRight(), а запись FT~~информации в поле 113 оформлена отдельным методом MaterializeEcFtInfo().
Документация: Изменения документации не требуются: сценарии загрузки, просмотра и управления электронными документами не меняются, исправляется внутренний способ записи служебных данных.
-
[I128-2487] Security: служебное поле 113 создается без явного действия безопасности
Статус: Завершено | Автор: Ilya Mikhaylenko