Files
whatsapp/migrations/20260811_rol_calidad.sql
T
Lizandro GuarnizoandClaude Opus 5 3a7b267f65 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>
2026-08-11 10:50:24 -05:00

19 lines
893 B
SQL

-- Rol de Calidad: consulta de turnos y tiempos de atención.
-- Solo lectura, y dentro del turnero solo dashboard e historial.
-- Idempotente: puede correrse más de una vez.
INSERT INTO roles (name, slug, description, color, home_page, is_system)
SELECT 'Calidad', 'calidad',
'Consulta de turnos y tiempos de atención. Solo lectura: dashboard e historial.',
'#7c3aed', '/erp.php?m=turnero&v=dashboard', 0
WHERE NOT EXISTS (SELECT 1 FROM roles WHERE slug = 'calidad');
INSERT INTO role_modules (role_id, module_slug, permission, can_view, can_create, can_edit, can_delete, can_export)
SELECT r.id, m.slug, 'read', 1, 0, 0, 0, IF(m.slug = 'turnero', 1, 0)
FROM roles r
JOIN (SELECT 'turnero' AS slug UNION ALL SELECT 'soporte') m
WHERE r.slug = 'calidad'
AND NOT EXISTS (
SELECT 1 FROM role_modules rm WHERE rm.role_id = r.id AND rm.module_slug = m.slug
);