Модель доступа пользователей UniBPM
В UniBPM определено несколько категорий пользователей, различающихся по уровню доступа и управленческим полномочиям.
Данный документ описывает модель прикладных прав доступа внутри системы и не относится к ролям Keycloak.
1. Пользователь (User)
Описание
Обычный пользователь системы, не имеющий административных или управляющих прав.
Доступно
- Задачи, где пользователь назначен Исполнителем (
task.assignee); - Заявки, где он является ответственным (
ticket.responsible) или владельцем (ticket.owner); - Записи, связанные с доступными заявками: Вложения и Лента активности;
- Каталог услуг с возможностью запуска связанных процессов.
Ограничения
- Нет доступа к списку рабочих процессов (Workflow);
- Нет возможности изменять настройки процессов или заявок, не связанных с ним напрямую.
2. Участник рабочего процесса (Workflow Participant)
Описание
Пользователь, имеющий полномочия (Permission) на доступ к конкретному рабочему процессу.
Доступно
- Создание заявок из рабочего процесса;
- Изменение заявок, принадлежащих данному процессу;
- Просмотр всех заявок, связанных с этим процессом.
Ограничения
- Не имеет прав изменять структуру или конфигурацию рабочего процесса.
3. Владелец рабочего процесса (Workflow Owner)
Описание
Участник рабочего процесса, дополнительно обладающий правами управления настройками этого процесса (workflow.owner).
Доступно
- Все права участника рабочего процесса;
- Управление конфигурацией процесса (BPMN-модель, экранные формы задач, шаблоны, уведомления и т.п.);
- Добавление участников рабочего процесса и разграничение их доступа.
4. Администратор системы (System Administrator)
Описание
Пользователь с административной ролью, указанной в параметре application.admin-role-name
(по умолчанию — ROLE_unibpm-admin).
Доступно
- Полный доступ ко всем рабочим процессам и заявкам;
- Управление пользователями, категориями доступа и системными настройками;
- Доступ к разделу Администрирование.
Видимость задач
Функционал видимости задач определяет, какие задачи отображаются пользователю в системе UniBPM.
Пользователь может видеть задачи:
- в админ-панели, раздел Задачи;
- в тикета, раздел Задачи.
Общая логика
Каждый пользователь видит только те задачи, к которым у него есть доступ по своей роли.
| Роль пользователя | Что видит | Условия видимости |
|---|---|---|
| Admin | Все задачи в системе | Без ограничений , видит задачи всех пользователей и всех workflow |
| Workflow Owner | Все задачи в своих workflow + назначенные ему задачи из других workflow | Все задачи (в статусах ASSIGNED,COMPLETED,DELETED, NEW) внутри своих workflow. Плюс задачи из других workflow, если он назначен как assignee |
| User | Только назначенные ему задачи | Видит только свои задачи со статусом ASSIGNED |
Техническая реализация
Логика видимости задач реализована на backend-уровне и распределена между двумя основными компонентами:PermissionServiceImpl и TaskQueryService.
Видимость задач реализована на backend-уровне и определяется комбинацией сервисов:
PermissionServiceImpl.limitAccess()ограничивает видимость задач в зависимости от роли пользователя.PermissionServiceImpl.isWorkflowOwner()определяет, является ли пользователь владельцем одного или нескольких workflow.PermissionServiceImpl.applyUserAccessFilters()добавляет фильтры по исполнителю и связанным задачам.TaskQueryService.createPermissionSpecification()формирует запросы с фильтрацией по доступу.TaskController.getList()вызывает ограничение доступа перед получением списка задач.
Фильтрация выполняется до обращения к базе данных, чтобы исключить отображение недоступных задач.
💡 Примечание
Категории пользователей UniBPM не являются ролями Keycloak.
Keycloak используется для аутентификации и базового разграничения доступа,
тогда как категории пользователей определяют прикладные полномочия внутри системы.
📘 Сравнительная таблица
| Категория | Основные действия | Уровень доступа |
|---|---|---|
| Пользователь | Выполняет задачи, запускает процессы | Ограниченный |
| Участник рабочего процесса | Управляет заявками в процессе | Базовый |
| Владелец рабочего процесса | Настраивает процесс | Управляющий |
| Администратор системы | Управляет всей системой | Полный |