diff --git a/internal/docduty/revoke.go b/internal/docduty/revoke.go index 641cf084..07017df6 100644 --- a/internal/docduty/revoke.go +++ b/internal/docduty/revoke.go @@ -153,13 +153,13 @@ func clearDutySlotSQL(duty string) (string, bool) { return ` UPDATE document_records SET reviewer_id = NULL, reviewer_name = '', updated_at = now() - WHERE project_id = $1 AND COALESCE(task_key, '') <> '' AND reviewer_id = $2 + WHERE project_id = $1 AND COALESCE(task_key, '') <> '' AND reviewer_id = $2 AND NOT duty_locked `, true case DutyApprover: return ` UPDATE document_records SET approver_id = NULL, approver_name = '', updated_at = now() - WHERE project_id = $1 AND COALESCE(task_key, '') <> '' AND approver_id = $2 + WHERE project_id = $1 AND COALESCE(task_key, '') <> '' AND approver_id = $2 AND NOT duty_locked `, true default: return "", false diff --git a/internal/docduty/store.go b/internal/docduty/store.go index ec45112d..da12502f 100644 --- a/internal/docduty/store.go +++ b/internal/docduty/store.go @@ -108,7 +108,7 @@ func backfillMissingDocumentDuties(ctx context.Context, db dutyDB, projectID int COALESCE(reviewer_id, 0), COALESCE(reviewer_name, ''), COALESCE(approver_id, 0), COALESCE(approver_name, '') FROM document_records - WHERE project_id = $1 AND COALESCE(task_key, '') <> '' + WHERE project_id = $1 AND COALESCE(task_key, '') <> '' AND NOT duty_locked `, projectID) if err != nil { return 0, fmt.Errorf("docduty: list documents: %w", err)