[FEAT] Permessi documentali profilabili per ruolo (Impostazioni > Permessi documentali) — v1.24.2
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>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d29195b2c1
commit
e245e76671
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* migrate_061_doc_permissions.php — Permessi documentali profilabili per ruolo (org-scoped).
|
||||
* Tabella matrice Ruolo x Azione del ciclo di vita documenti ISMS. IDEMPOTENTE.
|
||||
*/
|
||||
if (PHP_SAPI !== 'cli') { http_response_code(403); exit("CLI only\n"); }
|
||||
require_once __DIR__ . '/../config/env.php';
|
||||
require_once __DIR__ . '/../config/database.php';
|
||||
$pdo = Database::getInstance();
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS isms_doc_permissions (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
organization_id INT NOT NULL,
|
||||
capability VARCHAR(20) NOT NULL,
|
||||
role VARCHAR(30) NOT NULL,
|
||||
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");
|
||||
echo "Migrazione 061 — tabella isms_doc_permissions OK. Prossima mig=062.\n";
|
||||
Reference in New Issue
Block a user