From 31b79a5a62e3bb383ed136ddb2ae4bfe43aa2a57 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 2 Apr 2026 11:18:12 -0500 Subject: [PATCH] feat: rol lab_readonly con acceso exclusivo a ordenes y domicilios (solo lectura) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lab_domicilios.php: sidebar filtrado por hasModule() - lab_ordenes.php: sidebar filtrado por hasModule() - login.php: redirige a lab_domicilios.php si módulos son [lab_domicilios, lab_ordenes] - migration: elimina lab_dashboard y lab_pacientes del rol lab_readonly - DB producción: rol lab_readonly queda con lab_domicilios(read) + lab_ordenes(read) --- lab_domicilios.php | 18 ++++++++++++++++++ lab_ordenes.php | 18 ++++++++++++++++++ login.php | 4 ++++ ...02_lab_readonly_only_ordenes_domicilios.sql | 5 +++++ 4 files changed, 45 insertions(+) create mode 100644 migrations/20260402_lab_readonly_only_ordenes_domicilios.sql diff --git a/lab_domicilios.php b/lab_domicilios.php index d0ea469..6883137 100644 --- a/lab_domicilios.php +++ b/lab_domicilios.php @@ -39,17 +39,35 @@ $domIdParam = (int)($_GET['id'] ?? 0); diff --git a/lab_ordenes.php b/lab_ordenes.php index 101da21..f578f82 100644 --- a/lab_ordenes.php +++ b/lab_ordenes.php @@ -39,17 +39,35 @@ $estadoParam = $_GET['estado'] ?? ''; diff --git a/login.php b/login.php index 31acec8..cdfca29 100644 --- a/login.php +++ b/login.php @@ -61,6 +61,10 @@ if ($_POST && !$loginBlocked) { header('Location: enfermero_portal.php'); } elseif (count($modules) === 1 && $modules[0] === 'lab_formularios') { header('Location: lab_formularios.php'); + } elseif (count($modules) === 2 + && in_array('lab_domicilios', $modules, true) + && in_array('lab_ordenes', $modules, true)) { + header('Location: lab_domicilios.php'); } else { header('Location: index.php'); } diff --git a/migrations/20260402_lab_readonly_only_ordenes_domicilios.sql b/migrations/20260402_lab_readonly_only_ordenes_domicilios.sql new file mode 100644 index 0000000..e3b8100 --- /dev/null +++ b/migrations/20260402_lab_readonly_only_ordenes_domicilios.sql @@ -0,0 +1,5 @@ +-- Rol lab_readonly: dejar solo lab_domicilios y lab_ordenes (ambos con permiso read) +-- Eliminar módulos que no corresponden a este rol +DELETE FROM role_modules +WHERE role_id = (SELECT id FROM roles WHERE slug = 'lab_readonly') + AND module_slug IN ('lab_dashboard', 'lab_pacientes');