Block delete for in-progress access review campaigns

Reject deletion while a campaign is fetching sources so workers are
not racing a removed record. All other statuses remain deletable.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-07-29 15:48:41 +00:00
parent b156b0333a
commit b229da0115
6 changed files with 45 additions and 3 deletions

View File

@@ -205,6 +205,10 @@ func (s *Service) DeleteCampaign(
return fmt.Errorf("cannot load campaign: %w", err)
}
if campaign.Status == coredata.AccessReviewCampaignStatusInProgress {
return NewCampaignNotDeletableError(campaign.ID)
}
if err := campaign.Delete(ctx, conn, scope); err != nil {
return fmt.Errorf("cannot delete campaign: %w", err)
}