Skip to content

PM-5858: Require assignment before ticket closure - #4

Merged
jmgasper merged 1 commit into
developfrom
PM-5858
Aug 13, 2026
Merged

PM-5858: Require assignment before ticket closure#4
jmgasper merged 1 commit into
developfrom
PM-5858

Conversation

@jmgasper

Copy link
Copy Markdown
Contributor

What was broken
The Support API allowed a Support Team member to close a ticket without being assigned, and its ticket responses omitted the persisted closer ID.

Root cause
Closure authorization checked only the Support Team role, and close and unassign decisions were not serialized on the ticket row.

What was changed
Require assignment to the acting support user, lock close and unassign decisions against races, and expose the stored closer ID in ticket responses.

Any added/updated tests
Added coverage for unassigned rejection before writes, shared ticket locking, closer persistence and mapping, and preserved close idempotency and notification behavior.

Validation

  • Focused TicketsService suite: 20/20 passed.
  • Full API suite: 54/54 passed.
  • Lint passed.
  • Build passed.

What was broken
The Support API allowed a Support Team member to close a ticket without being assigned, and its ticket responses omitted the persisted closer ID.

Root cause
Closure authorization checked only the Support Team role, and close and unassign decisions were not serialized on the ticket row.

What was changed
Require assignment to the acting support user, lock close and unassign decisions against races, and expose the stored closer ID in ticket responses.

Any added/updated tests
Added coverage for unassigned rejection before writes, shared ticket locking, closer persistence and mapping, and preserved close idempotency and notification behavior.
@jmgasper
jmgasper merged commit 78c6245 into develop Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant