Перейти к содержанию

Права доступа к задачам

Что настраивает администратор

1. Права группы на категорию

Где: настройки категории, вкладка «Доступ» (и зеркально — в карточке группы).

Что задаётся:

  • просмотр всех задач;
  • создание, исполнение;
  • администратор задач/категории;
  • редактирование исполнителей, заказчика, срока;
  • пакетные действия;
  • доступ к шифрованным задачам и др.

Карточка группы, вкладка «Права на категории»

2. Смарт-доступ

Где: механизм смарт-доступа (настраивается на уровне категорий и групп).

Что задаётся:

  • смарт-выражение, возвращающее идентификаторы пользователей (UserID);
  • действие (обычно просмотр);
  • группы и категории, где правило активно.

Реестр правил смарт-доступа: наименование, смарт-выражение, действие

Настройка смарт-доступа к ДП в AdminSPA

Правила смарт-доступа к дополнительным параметрам настраиваются через всплывающее окно в форме настроек ДП категории.

Порядок добавления правил:

  1. Откройте настройки ДП в категории.
  2. В разделе «Смарт-доступ» откройте всплывающее окно.
  3. Заполните параметры правила:
  4. Название
  5. Смарт-выражение для пользователей
  6. Права доступа (чтение/запись)
  7. Триггерные группы (при необходимости)
  8. Триггерные ДП (при необходимости)
  9. Нажмите «Добавить параметр» — правило сохранится на сервере.
  10. Форма автоматически очистится для добавления следующего правила.
  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. Особенности форм администрирования

При работе с формами гибких прав учитывайте несколько ограничений:

  • Формы гибких прав нельзя редактировать прямо в списке — запись можно только создать или удалить.
  • Тип выбора пользователей: Пользователь (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 мин Пересчёт прав только для пользователей, находящихся в сети

Диагностика: если пользователь не видит задачи, для которых настроены гибкие права:

  1. Проверить лог job_history — выполняется ли AllUserPermissionsRefresh.
  2. Для RefreshAllUsersPermissionsJob — см. support-guide-permissions.md (диагностика таймаута).

7. Отчёт о правах доступа

Функция отчёта по правам (доступна в разделе администрирования). Позволяет проверить, какие пользователи и группы имеют доступ к задачам.

Параметры фильтрации

Отчёт можно ограничить одним или несколькими параметрами:

Параметр Описание
Пользователь Вывести права указанных пользователей
Группа Вывести права пользователей, входящих в выбранные группы
Категория Вывести права на выбранную категорию
Действие Вывести права по выбранному действию с категорией

Параметры можно комбинировать — отчёт строится одновременно по нескольким условиям.

⚠️ Отчёт учитывает права, наследуемые при заместительстве.

Если параметры не заданы — отчёт строится по всем пользователям, группам, категориям и действиям.

Практический admin-чеклист

Если пользователь не видит нужные задачи, пройдите по шагам:

  1. Убедиться, что пользователь состоит в нужной группе.
  2. Проверить права группы на целевую категорию.
  3. Проверить, не конфиденциальна ли задача.
  4. Для смарт-доступа проверить активность и область правила.
  5. Для ДП-цепочек проверить конкретные ExtParamID и SubcatID.

Типовые ошибки конфигурации

Наиболее частые ошибки при настройке прав и их причины:

Симптом Частая причина
Пользователь не видит задачи категории нет VIEW на категорию для его групп
Видит часть задач, но не все доступ идёт только по роли/смарту/ДП
Смарт-доступ не срабатывает правило/группа/категория настроены неверно или кэш не обновлён
Гибкий доступ через ДП «не работает» ошибка в ID ДП или категории, цепочка настроена неверно