Перейти к основному содержимому

AddScopeToRoleCommand

Назначение

Добавление scope к роли. Создаёт RoleScopeReferenceEntity (RoleId, ScopeId, Action = Include или Exclude). Требует разрешение Identity.Roles.Scopes.Create.

Цели

  • Проверить существование роли и scope
  • Проверить отсутствие пары (RoleId, ScopeId) в RoleScopeReferenceEntity
  • Создать RoleScopeReferenceEntity

Command: AddScopeToRoleCommand

Входные данные

ПолеТипОбязательноеОписание
RoleIdlongДаИдентификатор роли
ScopeIdlongДаИдентификатор scope
ActionScopeActionДаInclude или Exclude

Result: AddScopeToRoleCommandResult

ПолеТипОбязательноеОписание
ScopeReferenceIdGuidДаИдентификатор созданной связи RoleScopeReference

Бизнес-логика

Основной сценарий

  1. Начать транзакцию (ReadCommitted).
  2. Получить RoleEntity. Если не найдена — ошибка «Роль не найдена».
  3. Получить RoleScopeEntity. Если не найден — ошибка «Scope не найден».
  4. Проверить отсутствие пары (RoleId, ScopeId) в RoleScopeReferenceEntity.
  5. Создать RoleScopeReferenceEntity.
  6. Commit.
  7. Вернуть ScopeReferenceId.

Альтернативные сценарии

  • Роль не найдена: ошибка «Роль не найдена».
  • Scope не найден: ошибка «Scope не найден».
  • Scope уже добавлен: ошибка «Данный scope уже добавлен к роли».

Диаграмма алгоритма

Связанные сущности