Audit-trail-misattributie: webhook-acties toegewezen aan eerste admin alfabetisch #97
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jesse-a/OpenCRM#97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: MEDIUM (audit-integriteit)
DocuSeal-webhook-handler en auto-finalize gebruikten
prisma.user.findFirst({where:{role:'ADMIN'}})— dat geeft alfabetisch de eerste admin terug. In een VOF met "J. van Mullem" en "G.A. van Mullem" werd ALLES toegekend aan G.A., ongeacht wie het écht had gedaan. Audit-trail dus onbetrouwbaar voor accountability/compliance.Fix:
Quote.createdById+Contract.createdByIdtoegevoegd aan schema. Wordt gezet bij create-actions.resolveQuoteAuditor()/resolveContractAuditor()insrc/lib/quote-auditor.tsmet 3-laagse fallback: entity.createdById → laatste AuditLog op de entity → eerste actieve admin.finalizeAcceptedQuote, DocuSeal-webhook (beide Quote + Contract), publiekeacceptQuoteByTokenenrejectQuoteByTokengebruiken nu de helper.Files: prisma/schema.prisma, src/lib/quote-auditor.ts, src/lib/quote-finalize.ts, src/app/actions/quotes.ts, src/app/actions/contracts.ts, src/app/api/webhooks/docuseal/route.ts
Opgelost in commit
a39e777.