[I128-2501] Электронная библиотека: служебные поля полного текста создаются через Security


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте 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().

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

-

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

1.1. 🔗 blocks: I128-2487

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