[FIX] Rischi #500: ripristino tasti Nuovo/AI LIMITATI ai profili admin (decisione utente)

Il supervisore autonomo (b5f936b) aveva RIMOSSO del tutto i tasti 'Nuovo Rischio'
e 'AI Suggerisci' applicando il ticket alla lettera. Decisione utente (Cristiano):
NON rimuoverli ma limitarli ai profili super_admin/org_admin — l'inserimento libero
serve a coprire i rischi all-hazard non legati a un singolo requisito (art.24
D.Lgs.138/2024, confermato nis2-expert). Ripristinato il gating (gateAdminActions):
i tasti compaiono solo agli admin, nascosti agli altri. version 1.25.6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-07-27 15:20:44 +02:00
co-authored by Claude Opus 4.8
parent b5f936bba2
commit f1156a81bb
2 changed files with 20 additions and 8 deletions
+19 -7
View File
@@ -327,9 +327,12 @@
<h1 data-i18n="risks.title">Gestione Rischi</h1>
<p class="sub">Registro rischi e matrice 5×5</p>
</div>
<!-- Ticket #500 punto 4: rimossi i tasti 'Nuovo Rischio' e 'AI Suggerisci'.
I rischi corrispondono ai requisiti del framework (elenco in sola lettura). -->
<div class="content-header-actions" style="display:flex;align-items:center;gap:10px;flex-wrap:wrap"></div>
<div class="content-header-actions" style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">
<button class="btn-ghost" id="btn-ai-suggest" onclick="aiSuggest()">
<i data-lucide="sparkles" class="ic"></i>AI Suggerisci
</button>
<button class="btn-primary" id="btn-new-risk" onclick="showRiskModal()"><i data-lucide="plus" class="ic"></i>Nuovo Rischio</button>
</div>
</div>
<div class="content-body">
@@ -535,8 +538,17 @@
let derivedData = [];
let orgClass = null;
// Ticket #500 punto 4: nessuna creazione manuale/AI di rischi in questa pagina
// (i rischi = requisiti del framework, elenco in sola lettura).
// ── Gating ruolo: creazione/AI riservate ai profili amministrativi ──
const ADMIN_ROLES = ['super_admin', 'org_admin'];
(function gateAdminActions() {
const role = (api.getUserRole && api.getUserRole()) || '';
if (!ADMIN_ROLES.includes(role)) {
['btn-ai-suggest', 'btn-new-risk'].forEach(id => {
const el = document.getElementById(id);
if (el) el.style.display = 'none';
});
}
})();
// ── Load ─────────────────────────────────────────────────────
loadDerivedRisks();
@@ -658,8 +670,8 @@
<tr><td colspan="8">
<div class="empty-state">
<svg viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 1.944A11.954 11.954 0 012.166 5C2.056 5.649 2 6.319 2 7c0 5.225 3.34 9.67 8 11.317C14.66 16.67 18 12.225 18 7c0-.682-.057-1.35-.166-2.001A11.954 11.954 0 0110 1.944zM11 14a1 1 0 11-2 0 1 1 0 012 0zm0-7a1 1 0 10-2 0v3a1 1 0 102 0V7z" clip-rule="evenodd"/></svg>
<h4>Nessun rischio aggiuntivo</h4>
<p>I rischi corrispondono ai requisiti del framework di sicurezza mostrati nell'elenco qui sopra.</p>
<h4>Nessun rischio registrato</h4>
<p>Clicca "Nuovo Rischio" per aggiungere il primo rischio, oppure usa "AI Suggerisci".</p>
</div>
</td></tr>`;
return;