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>
19 lines
893 B
SQL
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
|
|
);
|