• Ru
  • En

Модель доступа пользователей UniBPM

В UniBPM определено несколько категорий пользователей, различающихся по уровню доступа и управленческим полномочиям.

Данный документ описывает модель прикладных прав доступа внутри системы и не относится к ролям Keycloak.


1. Пользователь (User)

Описание
Обычный пользователь системы, не имеющий административных или управляющих прав.

Доступно

Ограничения

  • Нет доступа к списку рабочих процессов (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 используется для аутентификации и базового разграничения доступа,
тогда как категории пользователей определяют прикладные полномочия внутри системы.


📘 Сравнительная таблица

КатегорияОсновные действияУровень доступа
ПользовательВыполняет задачи, запускает процессыОграниченный
Участник рабочего процессаУправляет заявками в процессеБазовый
Владелец рабочего процессаНастраивает процессУправляющий
Администратор системыУправляет всей системойПолный