Меню


[I128-2814] Расширить ProfileManager для пользовательских настроек TaskPortal


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2814] Расширить ProfileManager для пользовательских настроек TaskPortal📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Новые возможности 2026.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль ProfileManager - Подсистема управления профилями настроек модулей

Завершено: 09.09.2026 06:32

Нужно расширить ProfileManager так, чтобы TaskPortal и другие модули могли использовать единый общесистемный механизм пользовательских предпочтений, профилей и контролируемых overrides.

Цель

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

Эти настройки должны храниться в ProfileManager. TaskPortal должен только читать effective profile и применять его в пользовательском интерфейсе. Tasks должен поставлять доменные defaults и системные представления, но не хранить персональные настройки пользователя.

Что нужно сделать

  1. Добавить модель preference target: workflow view, workflow filter, portal page, list variant, notification profile или другой поддержанный объект.
  2. Поддержать scope настройки: пользователь, группа, роль, проект, host, portal profile и workflow context.
  3. Реализовать хранение избранных WorkflowFilter без копирования определения фильтра.
  4. Реализовать порядок избранных фильтров в пределах пользователя, проекта и рабочего места.
  5. Реализовать выбор фильтра по умолчанию для пользователя, проекта и portal context.
  6. Реализовать last-used параметры фильтра только если владелец фильтра разрешает их сохранять.
  7. Реализовать пользовательские overrides для отображения списка: порядок колонок, скрытие разрешенных колонок, плотность строк, сортировка и группировка в пределах разрешенного WorkflowView.
  8. Реализовать сброс пользовательских настроек к default и административный reset проблемных настроек без изменения системного профиля.
  9. Реализовать safe diagnostics для случаев: недоступный фильтр, удаленный view, конфликт override с системным baseline, потеря права просмотра target-объекта.
  10. Подготовить Help для администратора и программиста, а также TestA-сценарии для основных preference/override сценариев.

Границы ответственности

ProfileManager хранит профили, bindings, пользовательские preference, project/user overrides, diff, where-used, reset и безопасную диагностику конфликтов.

WorkflowFilter определяет и исполняет фильтр, materialized slice, счетчики и performance diagnostics. ProfileManager не должен копировать определение фильтра и не должен исполнять фильтр.

WorkflowView определяет доступные поля, колонки, карточки и допустимые варианты отображения. ProfileManager хранит только пользовательский выбор в рамках разрешенного WorkflowView.

TaskPortal применяет effective profile в интерфейсе, но не хранит и не интерпретирует общий механизм профилей.

Tasks поставляет task-specific defaults и доменные настройки рабочего места, но не хранит персональные preference пользователя.

Security проверяет права на просмотр и изменение профиля, preference target, фильтра, представления и связанных объектов. Preference не должен расширять права пользователя.

HealthCheck проверяет битые bindings, удаленные targets, циклы наследования, конфликт system baseline и недоступные профили.

Критерии приемки

  1. Пользователь может назначить доступный WorkflowFilter избранным и выбрать фильтр по умолчанию для портала.
  2. Порядок избранных фильтров сохраняется отдельно от определения фильтра и не меняет сам WorkflowFilter.
  3. Последние параметры фильтра сохраняются только если это разрешено настройкой владельца фильтра.
  4. Настройки колонок, сортировки, группировки и плотности применяются только в рамках разрешенного WorkflowView.
  5. При потере доступа к filter/view preference не раскрывает скрытый target и дает безопасную диагностику.
  6. Администратор может сбросить пользовательские настройки без изменения системного профиля и без удаления системной поставки.
  7. ProfileManager не исполняет WorkflowFilter, не проверяет права вместо Security, не доставляет уведомления вместо EventBus/Queue и не рендерит страницы вместо WorkflowView/TaskPortal.
  8. Help описывает настройку профилей, избранных фильтров, default filter, last-used параметров, reset и диагностику конфликтов.
  9. TestA покрывает избранное, default filter, last-used параметры, недоступный target, reset, отсутствие копирования filter definition и границы ответственности с WorkflowFilter, WorkflowView, Security, HealthCheck и TaskPortal.

-

I1282814: реализован первый кодовый срез ProfileManager для пользовательских preference, профилей и overrides, которые используются портальными и workflowсценариями. PR не переносит в ProfileManager исполнение фильтров, проверку прав, доставку уведомлений или доменную логику TaskPortal: модуль хранит только безопасные пользовательские настройки и вычисляет effective preference.

Куда смотреть:

Изменения по файлам:

modules/ProfileManager/api.php

modules/ProfileManager/__call/*.inc

modules/ProfileManager/system/preference_contract.json

modules/ProfileManager/Help/Preferences.md

modules/ProfileManager/Help/Root.md modules/ProfileManager/Help/Purpose.md

modules/ProfileManager/Tests/Module.inc

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

1.1. 🔗 blocks: I128-2811

[I128-2811] Заявительский портал TaskPortal Статус: Завершено | Автор: Ilya Mikhaylenko

1.2. 🔗 blocks: I128-2816

[I128-2816] Расширить Menu для публикации TaskPortal в навигации и Cabinet Статус: Завершено | Автор: Ilya Mikhaylenko

1.3. 🔗 blocks: I128-2821

[I128-2821] Реализовать рабочие доски WorkflowBoard для workflow-записей Статус: Завершено | Автор: Ilya Mikhaylenko

1.4. 🔗 blocks: I128-2791

[I128-2791] Расширить WorkflowScreen/WorkflowView для публичных ws-форм и представлений Статус: Завершено | Автор: Ilya Mikhaylenko

1.5. 🔗 blocks: I128-2797

[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа Статус: Завершено | Автор: Ilya Mikhaylenko

1.6. 🔗 blocks: I128-2798

[I128-2798] Реализовать HealthCheck для workflow-проектов и задач Статус: Завершено | Автор: Ilya Mikhaylenko

1.7. 🔗 blocks: I128-2799

[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев Статус: Завершено | Автор: Ilya Mikhaylenko

1.8. 🔗 blocks: I128-2809

[I128-2809] Сохраненные и материализованные фильтры WorkflowFilter Статус: Завершено | Автор: Ilya Mikhaylenko