Доступ (Permission)
Доступ — механизм предоставления пользователям, группам и сервисным аккаунтам прав на пространство (Workflow).
При создании пространства доступ к нему имеют владелец пространства и администратор системы. Чтобы подключить к работе других участников, владелец или пользователь с правом управления доступом добавляет их в настройках пространства.
Доступ через
Permissionдействует на всё пространство. Модель доступа на уровне отдельных типов заявок больше не используется.
Где применяется
Permission определяет, что пользователь может делать внутри пространства:
- видеть пространство и заявки;
- создавать заявки в доступном пространстве;
- читать, комментировать или изменять заявки в зависимости от уровня доступа;
- управлять настройками и участниками пространства, если выдан максимальный уровень.
Если нужен доступ только к одной конкретной заявке, используется отдельная модель Доступ к заявке (TicketPermission).
Субъекты доступа
Доступ может быть назначен одному из типов субъектов:
USER— пользователь;GROUP— группа пользователей;SERVICE_ACCOUNT— сервисная учётная запись для интеграций и системных клиентов.
В одной записи доступа должен быть указан ровно один субъект: пользователь, группа или сервисный аккаунт.
Уровни доступа
RO
Доступ только на чтение.
Пользователь может видеть пространство и связанные с ним заявки, но не может изменять заявки, оставлять комментарии или управлять настройками.
COMMENT
Доступ на чтение и комментирование.
Пользователь может просматривать заявки и участвовать в обсуждении, но не может изменять поля заявки.
RW
Доступ на чтение и изменение заявок.
Пользователь может работать с заявками пространства: читать, комментировать и изменять данные заявки. Этот уровень не даёт право управлять настройками пространства или выдавать доступ другим пользователям.
OWNER
Полный доступ к пространству.
Пользователь может работать с заявками, управлять настройками пространства и выдавать доступ другим участникам.
Атрибуты
Пространство (workflow)
Workflow
Пространство, к которому предоставляется доступ.
Пользователь (user)
User
Пользователь, которому предоставляется доступ. Используется вместе с типом субъекта USER.
Группа пользователей (group)
Group
Группа, участники которой получают доступ. Используется вместе с типом субъекта GROUP.
Сервисный аккаунт (serviceAccountId)
String
Идентификатор сервисного аккаунта. Используется вместе с типом субъекта SERVICE_ACCOUNT.
Для клиента Keycloak, у которого включён параметр Service Accounts Roles, обычно используется значение:
service-account-<client-id>
Например, если создан клиент:
credit
то в доступе указывается:
service-account-credit
Отличие от доступа к заявке
Permission работает на уровне пространства и влияет на все заявки этого пространства.
TicketPermission работает только на уровне одной конкретной заявки. Он не открывает всё пространство, не даёт доступ к настройкам и не применяется к другим заявкам того же пространства.
Примеры
Пользователь с RO
Пользователь видит пространство и заявки, но не может менять поля заявки или писать комментарии.
Пользователь с COMMENT
Пользователь видит заявки и может оставлять комментарии, но не может редактировать заявку.
Пользователь с RW
Пользователь может изменять заявки пространства, но не может управлять доступом или настройками пространства.
Пользователь с OWNER
Пользователь может работать с заявками, изменять настройки пространства и управлять доступом участников.