Права доступа к задачам — Администрирование¶
Что настраивает администратор¶
1. Права группы на категорию¶
Где: настройки категории, вкладка «Доступ» (и зеркально — в карточке группы).
Что задаётся:
- просмотр всех задач;
- создание, исполнение;
- администратор задач/категории;
- редактирование исполнителей, заказчика, срока;
- пакетные действия;
- доступ к шифрованным задачам и др.
2. Смарт-доступ¶
Где: контур smart-access.
Что задаётся:
- смарт-выражение, возвращающее UserID;
- действие (обычно view);
- группы и категории, где правило активно.
Настройка смарт-доступа к ДП в AdminSPA¶
Правила смарт-доступа к дополнительным параметрам настраиваются через модальное окно в форме настроек ДП категории.
Workflow добавления правил:
- Откройте настройки ДП в категории
- В разделе "Смарт-доступ" откройте модальное окно
- Заполните параметры правила:
- Название
- Смарт-выражение для пользователей
- Права доступа (чтение/запись)
- Триггерные группы (при необходимости)
- Триггерные ДП (при необходимости)
- Нажмите "Добавить параметр" — правило будет сохранено на сервер
- Форма автоматически очистится для добавления следующего правила
- После добавления всех правил закройте модальное окно
Особенности (актуализация 2026-02-11):
- Каждое правило сохраняется независимо от общей формы настроек ДП
- Защита от дублирования: кнопка блокируется на время сохранения
- После сохранения отображается уведомление "Смарт доступ сохранён"
- Правила можно добавлять последовательно без закрытия модального окна
- Закрытие модального окна не требует дополнительного сохранения — все добавленные правила уже сохранены на сервер
3. Доступ по SQL View¶
Где: категория (настройка источника доступа).
Требование к view: колонки TaskID, UserID.
4. Гибкие права через ДП¶
Где: раздел администрирования «Гибкие права на задачи» (доступно с v2.261 Лира).
Механизм предоставляет доступ на просмотр конкретных задач (не всей категории) на основании данных в самой задаче. Другие действия (редактирование, комментирование) требуют дополнительных прав на категорию.
4.1. Режим Flat¶
ДП с типом «Выбор пользователя» находится в той же категории, на задачи которой настраиваются права. Пользователи и группы из этого ДП получают доступ к задаче.
| Поле формы | Описание |
|---|---|
| Категория | Категория, на задачи которой настраиваются права |
| Выбор пользователей | ДП типа «Выбор пользователей» в этой же категории |
- Таблица БД:
dbo.EPRightsFlat - Пример: ДП «РП (Руководитель проекта)» в категории «Договоры» — пользователи из ДП видят задачи договоров.
⚠️ В ДП «Выбор пользователя» допустимы только пользователи и группы; орг.единицы не поддерживаются.
4.2. Режим Lookup¶
ДП с типом «Lookup поле» в текущей категории ведёт на категорию-источник, где есть ДП «Выбор пользователя». Пользователи из ДП категории-источника получают доступ к задаче.
| Поле формы | Описание |
|---|---|
| Категория | Категория, на задачи которой настраиваются права |
| Выбор пользователей | ДП типа «Выбор пользователей» — в категории-источнике Lookup |
| Lookup | ДП типа «Lookup поле» в категории из поля «Категория» |
- Таблица БД:
dbo.EPRightsLkp - Пример: категория «Backlog проектных задач» → Lookup «Модуль» на категорию «Модули ТМ» → ДП «Акцептант» (Выбор пользователя) → доступ к задачам Backlog.
4.3. Режим Multilookup¶
ДП с типом «Выбор нескольких задач из категории (Multilookup)» в текущей категории ссылается на категорию-источник, где есть ДП «Выбор пользователя».
| Поле формы | Описание |
|---|---|
| Категория | Категория, на задачи которой настраиваются права |
| Выбор пользователей | ДП типа «Выбор пользователей» — в категории-источнике Multilookup |
| Multilookup | ДП типа «Выбор нескольких задач из категории» в категории из поля «Категория» |
- Таблица БД:
dbo.EPRightsMlt - Пример: категории разработки (Backlog, Backlog несоответствия) → ДП «Компании» (Multilookup на категорию «Клиенты») → ДП «КМ (Клиентский менеджер)» → доступ к задачам.
4.4. Особенности форм администрирования¶
- Формы гибких прав недоступны для inline-редактирования — запись можно только создать или удалить.
- Тип выбора пользователей:
Пользователь (User),Группа (Group),Орг.структура (временно не используется). - ⚠️ Настройка доступа по статусам (
ep-rights-*-states-*) устарела с v2.264 Кассиопея — не используется.
4.5. Пересчёт функций прав¶
При изменении настроек гибких прав через формы администрирования вызывается SP dbo.GenerateExtParamsRightsFunctions, который пересоздаёт функцию fn_UserTaskPermissionsGeneral из шаблона. Подробнее — database.md.
Паттерны настройки (таблица режимов, ограничения, паттерн скрытого ДП через автоматизацию) — см. academy-patterns.md.
5. Механизм материализации прав¶
Система автоматически пересчитывает гибкие права при любом изменении задачи: - создание задачи; - смена категории; - изменение заказчика или исполнителя; - обновление статуса или ДП.
Пересчёт выполняет SP dbo.AllUserPermissionsRefresh, который вызывается со скользящей задержкой 1 секунда — множественные изменения в рамках одной задачи группируются. Параметры SP: @UserID, @SubcatID, @TaskIDs, @OnlineUserOnlyF, @DebugF.
- stored-procedures.md — сигнатура SP
- objects-catalog.md — каталог объектов
- database.md — кодогенерация функции прав
6. Таймер-задания фонового пересчёта¶
Два задания по таймеру обеспечивают актуальность прав:
| Задание | Период | Описание |
|---|---|---|
RefreshAllUsersPermissionsJob |
Раз в час | Полный пересчёт прав для всех пользователей |
RefreshOnlineUsersPermissionsJob |
Каждые 5 мин | Пересчёт прав только для пользователей, находящихся в сети |
Диагностика: если пользователь не видит задачи, для которых настроены гибкие права:
1. Проверить лог job_history — выполняется ли AllUserPermissionsRefresh.
2. Для RefreshAllUsersPermissionsJob — см. support-guide-permissions.md (диагностика таймаута).
7. Отчёт о правах доступа¶
Функция отчёта по правам (доступна в разделе администрирования). Позволяет проверить, какие пользователи и группы имеют доступ к задачам.
Параметры фильтрации¶
| Параметр | Описание |
|---|---|
| Пользователь | Вывести права указанных пользователей |
| Группа | Вывести права пользователей, входящих в выбранные группы |
| Категория | Вывести права на выбранную категорию |
| Действие | Вывести права по выбранному действию с категорией |
Параметры можно комбинировать — отчёт строится одновременно по нескольким условиям.
⚠️ Отчёт учитывает права, наследуемые при заместительстве. Подробнее — substitution.md.
Если параметры не заданы — отчёт строится по всем пользователям, группам, категориям и действиям.
Практический admin-чеклист¶
- Убедиться, что пользователь состоит в нужной группе.
- Проверить права группы на целевую категорию.
- Проверить, не конфиденциальна ли задача.
- Для смарт-доступа проверить активность и область правила.
- Для ДП-цепочек проверить конкретные
ExtParamIDиSubcatID.
Типовые ошибки конфигурации¶
| Симптом | Частая причина |
|---|---|
| Пользователь не видит задачи категории | нет VIEW на категорию для его групп |
| Видит часть задач, но не все | доступ идёт только по роли/смарту/ДП |
| Смарт-доступ не срабатывает | правило/группа/категория настроены неверно или кэш не обновлён |
| Гибкий доступ через ДП «не работает» | ошибка в ID ДП/категории, цепочка невалидна |