I diritti sul ciclo di vita dei documenti SGSI sono ora configurabili per ruolo (matrice Ruolo x Azione, org-scoped) invece che cablati. - mig.061: tabella isms_doc_permissions (org x capability x role x allowed) - IsmsModelController: requireDocCapability() sostituisce i requireOrgRole cablati nelle 7 transizioni (edit/submit/approve/publish/reject/archive/new_version); default = comportamento precedente; super_admin sempre ok; endpoint GET/PUT /api/isms/docPermissions (canEdit) - settings.html: tab 'Permessi documentali' con matrice checkbox (lettura per i membri, salvataggio Amministratore/Direzione) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 lines
978 B
SQL
17 lines
978 B
SQL
-- 061_doc_permissions.sql — Permessi documentali profilabili per ruolo (org-scoped).
|
|
-- Matrice Ruolo x Azione del ciclo di vita documenti ISMS (Impostazioni > Permessi documentali).
|
|
-- Apply autoritativo idempotente: application/cli/migrate_061_doc_permissions.php
|
|
-- Default (se nessun override): edit/submit/approve/publish/reject/archive/new_version =
|
|
-- org_admin, compliance_manager, board_member. super_admin sempre consentito.
|
|
|
|
CREATE TABLE IF NOT EXISTS isms_doc_permissions (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
organization_id INT NOT NULL,
|
|
capability VARCHAR(20) NOT NULL, -- edit|submit|approve|publish|reject|archive|new_version
|
|
role VARCHAR(30) NOT NULL, -- org_admin|compliance_manager|board_member|auditor|employee|consultant
|
|
allowed TINYINT(1) NOT NULL DEFAULT 1,
|
|
updated_at DATETIME NULL,
|
|
UNIQUE KEY uk_docperm (organization_id, capability, role),
|
|
INDEX idx_docperm_org (organization_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|