Rol de Calidad, y restricción por rol dentro del turnero

Rol nuevo para consultar turnos y tiempos de atención, de solo lectura y con
acceso únicamente a dashboard e historial. Se le permite exportar el historial,
que es la forma de analizar tiempos fuera del sistema.

Al crearlo salió que las vistas del turnero no verificaban nada por su cuenta:
el control del ERP es por módulo, así que cualquiera con acceso al turnero podía
abrir Configuración —lugares, dispositivos, plantillas— escribiendo la URL,
aunque el menú no se la mostrara. Aplicaba a todos los roles, no solo al nuevo.

Se agrega _acceso.php con una verificación de rol que usan las tres pantallas
que operan sobre la atención o cambian configuración. Verificado que cada rol
conserva lo que ya usaba: recepcionista entra a recepción, bacteriólogo a las
estaciones, supervisor y administradores a todo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-11 10:50:24 -05:00
co-authored by Claude Opus 5
parent dc17c6a469
commit 3a7b267f65
6 changed files with 66 additions and 1 deletions
+3
View File
@@ -12,6 +12,9 @@ require_once __DIR__ . '/../../../config/config.php';
if (!isUserLoggedIn()) { header('Location: ' . BASE_URL . 'login.php'); exit; }
require_once __DIR__ . '/../_acceso.php';
turneroExigirRol(['supervisor']);
$db = Database::getInstance();
$pdo = $db->getConnection();
+3
View File
@@ -9,6 +9,9 @@ if (!isUserLoggedIn()) {
exit;
}
require_once __DIR__ . '/../_acceso.php';
turneroExigirRol(['bacteriologo', 'supervisor']);
// Tablet asignada → forzar su lugar por token de navegador (o IP como fallback)
$lugarForzado = 0;
try {
+3
View File
@@ -9,6 +9,9 @@ if (!isUserLoggedIn()) {
exit;
}
require_once __DIR__ . '/../_acceso.php';
turneroExigirRol(['recepcionista', 'lab_recepcion', 'supervisor']);
// Tablet asignada → forzar su escritorio por token de navegador (o IP como fallback)
$_recepForzado = 0;
try {