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