Права доступа к задачам¶
Что настраивает администратор¶
1. Права группы на категорию¶
Где: настройки категории, вкладка «Доступ» (и зеркально — в карточке группы).
Что задаётся:
- просмотр всех задач;
- создание, исполнение;
- администратор задач/категории;
- редактирование исполнителей, заказчика, срока;
- пакетные действия;
- доступ к шифрованным задачам и др.

2. Смарт-доступ¶
Где: механизм смарт-доступа (настраивается на уровне категорий и групп).
Что задаётся:
- смарт-выражение, возвращающее идентификаторы пользователей (UserID);
- действие (обычно просмотр);
- группы и категории, где правило активно.

Настройка смарт-доступа к ДП в AdminSPA¶
Правила смарт-доступа к дополнительным параметрам настраиваются через всплывающее окно в форме настроек ДП категории.
Порядок добавления правил:
- Откройте настройки ДП в категории.
- В разделе «Смарт-доступ» откройте всплывающее окно.
- Заполните параметры правила:
- Название
- Смарт-выражение для пользователей
- Права доступа (чтение/запись)
- Триггерные группы (при необходимости)
- Триггерные ДП (при необходимости)
- Нажмите «Добавить параметр» — правило сохранится на сервере.
- Форма автоматически очистится для добавления следующего правила.
- После добавления всех правил закройте окно.
Особенности:
- Каждое правило сохраняется независимо от общей формы настроек ДП.
- Защита от дублирования: кнопка блокируется на время сохранения.
- После сохранения отображается уведомление «Смарт-доступ сохранён».
- Правила можно добавлять последовательно, не закрывая окно.
- Закрытие окна не требует дополнительного сохранения — все добавленные правила уже сохранены на сервере.
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. Особенности форм администрирования¶
При работе с формами гибких прав учитывайте несколько ограничений:
- Формы гибких прав нельзя редактировать прямо в списке — запись можно только создать или удалить.
- Тип выбора пользователей:
Пользователь (User),Группа (Group),Орг.структура (временно не используется). - ⚠️ Настройка доступа по статусам (
ep-rights-*-states-*) устарела с v2.264 Кассиопея — не используется.
4.5. Пересчёт функций прав¶
При изменении настроек гибких прав через формы администрирования вызывается хранимая процедура dbo.GenerateExtParamsRightsFunctions, которая пересоздаёт функцию fn_UserTaskPermissionsGeneral из шаблона.
Паттерны настройки (таблица режимов, ограничения, паттерн скрытого ДП через автоматизацию) — см. academy-patterns.md.
5. Автоматический пересчёт прав¶
Система автоматически пересчитывает гибкие права при любом изменении задачи:
- создание задачи;
- смена категории;
- изменение заказчика или исполнителя;
- обновление статуса или ДП.
Пересчёт выполняет хранимая процедура dbo.AllUserPermissionsRefresh, которая вызывается со скользящей задержкой 1 секунда — несколько изменений одной задачи группируются в один пересчёт. Параметры процедуры: @UserID, @SubcatID, @TaskIDs, @OnlineUserOnlyF, @DebugF.
6. Фоновые задания пересчёта прав¶
Помимо мгновенного пересчёта, актуальность прав поддерживают два фоновых задания по расписанию:
| Задание | Период | Описание |
|---|---|---|
RefreshAllUsersPermissionsJob |
Раз в час | Полный пересчёт прав для всех пользователей |
RefreshOnlineUsersPermissionsJob |
Каждые 5 мин | Пересчёт прав только для пользователей, находящихся в сети |
Диагностика: если пользователь не видит задачи, для которых настроены гибкие права:
- Проверить лог
job_history— выполняется лиAllUserPermissionsRefresh. - Для
RefreshAllUsersPermissionsJob— см. support-guide-permissions.md (диагностика таймаута).
7. Отчёт о правах доступа¶
Функция отчёта по правам (доступна в разделе администрирования). Позволяет проверить, какие пользователи и группы имеют доступ к задачам.
Параметры фильтрации¶
Отчёт можно ограничить одним или несколькими параметрами:
| Параметр | Описание |
|---|---|
| Пользователь | Вывести права указанных пользователей |
| Группа | Вывести права пользователей, входящих в выбранные группы |
| Категория | Вывести права на выбранную категорию |
| Действие | Вывести права по выбранному действию с категорией |
Параметры можно комбинировать — отчёт строится одновременно по нескольким условиям.
⚠️ Отчёт учитывает права, наследуемые при заместительстве.
Если параметры не заданы — отчёт строится по всем пользователям, группам, категориям и действиям.
Практический admin-чеклист¶
Если пользователь не видит нужные задачи, пройдите по шагам:
- Убедиться, что пользователь состоит в нужной группе.
- Проверить права группы на целевую категорию.
- Проверить, не конфиденциальна ли задача.
- Для смарт-доступа проверить активность и область правила.
- Для ДП-цепочек проверить конкретные
ExtParamIDиSubcatID.
Типовые ошибки конфигурации¶
Наиболее частые ошибки при настройке прав и их причины:
| Симптом | Частая причина |
|---|---|
| Пользователь не видит задачи категории | нет VIEW на категорию для его групп |
| Видит часть задач, но не все | доступ идёт только по роли/смарту/ДП |
| Смарт-доступ не срабатывает | правило/группа/категория настроены неверно или кэш не обновлён |
| Гибкий доступ через ДП «не работает» | ошибка в ID ДП или категории, цепочка настроена неверно |