[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
@@ -294,6 +294,7 @@ class NIS2API {
// Catalogo cfg_nis2_* (43 misure / 116 requisiti + procedura+rischio default).
// ═══════════════════════════════════════════════════════════════════
frameworkCatalog() { return this._acn(this.get('/framework/catalog')); }
frameworkSetState(d) { return this._acn(this.post('/framework/state', d || {})); }
// ═══════════════════════════════════════════════════════════════════
// Stakeholder estesi (A4 Fase 4.5) — riusa suppliers (GV.SC-02).