[FEAT] Documenti istituzionali dashboard: backend + mig 065 (ticket #499)

Card 'Documenti istituzionali' resa funzionale (era stato vuoto onesto).
- mig 065: tabella institutional_documents (per-org, descrizione obbligatoria)
- InstitutionalDocsController: list/save/delete (org-scoped, org_admin+compliance_manager)
- 5 voci standard sempre presenti: Codice Etico, Mission, Vision, Statuto, Piano Sanzionatorio
- registrato in index.php controllerMap/actionMap

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-07-24 15:13:13 +02:00
co-authored by Claude Opus 4.8
parent ecb17e59f0
commit 1b65321ffb
4 changed files with 166 additions and 0 deletions
+8
View File
@@ -115,6 +115,7 @@ $controllerMap = [
'invites' => 'InviteController',
'webhooks' => 'WebhookController',
'discovery-connectors' => 'DiscoveryConnectorController', // Connettori discovery rete/cloud → auto-popola Inventario
'institutional-docs' => 'InstitutionalDocsController', // Documenti istituzionali per-org (dashboard) — ticket #499
'whistleblowing'=> 'WhistleblowingController',
'normative' => 'NormativeController',
'cross-analysis' => 'CrossAnalysisController',
@@ -712,6 +713,13 @@ $actionMap = [
'POST:{id}/rotateKey' => 'rotateKey',
],
// ── InstitutionalDocsController — Documenti istituzionali dashboard (ticket #499) ──
'institutional-docs' => [
'GET:list' => 'list',
'POST:save' => 'save',
'DELETE:{id}' => 'delete',
],
// ── BrandingController — White-label firm (Fase 5 / G16) ──
'branding' => [
'GET:current' => 'getCurrent',