[FEAT] Epic C / C1 operativo — valutazione/stato di conformità per requisito (mig.047)

org_requisito_state (org x requisito -> stato + valutazione del rischio + note),
la valutazione 'parte vuota'. È da qui che emerge lo stato di conformità (sostituirà il Gap ACN, C3).
- FrameworkController: catalog ora include lo stato per-org di ogni requisito (risoluzione org
  OPZIONALE con verifica accesso = anti-IDOR); nuovo POST /framework/state (upsert, requireOrgRole
  org_admin/compliance_manager, validazione stato + requisito esistente).
- misure-requisiti.html: colonna Stato/Valutazione (se org) + modale di valutazione (stato,
  valutazione del rischio, note). api.frameworkSetState.
Smoke prod: catalog has_org/org_class OK; upsert non_conforme persistito e riletto; ISOLAMENTO
multi-tenant verificato (org 152 non visibile a org 151). Additivo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-16 17:41:16 +02:00
co-authored by Claude Opus 4.8
parent 92d101b6f4
commit b34bf3f9f6
5 changed files with 286 additions and 38 deletions
+1
View File
@@ -255,6 +255,7 @@ $actionMap = [
// rischio di default per requisito). Nessuna scrittura (codifica non variabile).
'framework' => [
'GET:catalog' => 'catalog',
'POST:state' => 'setState', // upsert valutazione/stato per requisito (org-scoped)
],
// ── AssessmentController ────────────────────────