feat: rol lab_readonly con acceso exclusivo a ordenes y domicilios (solo lectura)
- 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)
This commit is contained in:
@@ -39,17 +39,35 @@ $domIdParam = (int)($_GET['id'] ?? 0);
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-header"><h4><i class="fas fa-flask"></i> Módulo Lab</h4></div>
|
||||
<ul class="sidebar-menu">
|
||||
<?php if (hasModule('lab_dashboard')): ?>
|
||||
<li><a href="lab_dashboard.php" class="nav-link"><i class="fas fa-tachometer-alt"></i> Dashboard</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_ordenes')): ?>
|
||||
<li><a href="lab_ordenes.php" class="nav-link"><i class="fas fa-file-medical"></i> Órdenes</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_pacientes')): ?>
|
||||
<li><a href="lab_pacientes.php" class="nav-link"><i class="fas fa-users"></i> Pacientes</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="lab_domicilios.php" class="nav-link active"><i class="fas fa-house-medical"></i> Domicilios</a></li>
|
||||
<?php if (hasModule('lab_enfermeras')): ?>
|
||||
<li><a href="lab_enfermeras.php" class="nav-link"><i class="fas fa-user-nurse"></i> Enfermeros</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_formularios')): ?>
|
||||
<li><a href="lab_formularios.php" class="nav-link"><i class="fas fa-wpforms"></i> Formularios</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_reportes')): ?>
|
||||
<li><a href="lab_reportes.php" class="nav-link"><i class="fas fa-chart-bar"></i> Reportes</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_configuracion')): ?>
|
||||
<li><a href="lab_configuracion.php" class="nav-link"><i class="fas fa-sliders-h"></i> Configuración</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_usuarios')): ?>
|
||||
<li><a href="lab_usuarios.php" class="nav-link"><i class="fas fa-users-cog"></i> Usuarios</a></li>
|
||||
<?php endif; ?>
|
||||
<li class="sidebar-divider"></li>
|
||||
<?php if (hasModule('lab_dashboard')): ?>
|
||||
<li><a href="index.php" class="nav-link"><i class="fas fa-arrow-left"></i> Volver al Bot</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="logout.php" class="nav-link logout-link" onclick="return confirm('¿Cerrar sesión?')"><i class="fas fa-sign-out-alt"></i> Cerrar Sesión</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -39,17 +39,35 @@ $estadoParam = $_GET['estado'] ?? '';
|
||||
<nav class="sidebar">
|
||||
<div class="sidebar-header"><h4><i class="fas fa-flask"></i> Módulo Lab</h4></div>
|
||||
<ul class="sidebar-menu">
|
||||
<?php if (hasModule('lab_dashboard')): ?>
|
||||
<li><a href="lab_dashboard.php" class="nav-link"><i class="fas fa-tachometer-alt"></i> Dashboard</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="lab_ordenes.php" class="nav-link active"><i class="fas fa-file-medical"></i> Órdenes</a></li>
|
||||
<?php if (hasModule('lab_pacientes')): ?>
|
||||
<li><a href="lab_pacientes.php" class="nav-link"><i class="fas fa-users"></i> Pacientes</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_domicilios')): ?>
|
||||
<li><a href="lab_domicilios.php" class="nav-link"><i class="fas fa-house-medical"></i> Domicilios</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_enfermeras')): ?>
|
||||
<li><a href="lab_enfermeras.php" class="nav-link"><i class="fas fa-user-nurse"></i> Enfermeras</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_formularios')): ?>
|
||||
<li><a href="lab_formularios.php" class="nav-link"><i class="fas fa-wpforms"></i> Formularios</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_reportes')): ?>
|
||||
<li><a href="lab_reportes.php" class="nav-link"><i class="fas fa-chart-bar"></i> Reportes</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_configuracion')): ?>
|
||||
<li><a href="lab_configuracion.php" class="nav-link"><i class="fas fa-sliders-h"></i> Configuración</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (hasModule('lab_usuarios')): ?>
|
||||
<li><a href="lab_usuarios.php" class="nav-link"><i class="fas fa-users-cog"></i> Usuarios</a></li>
|
||||
<?php endif; ?>
|
||||
<li class="sidebar-divider"></li>
|
||||
<?php if (hasModule('lab_dashboard')): ?>
|
||||
<li><a href="index.php" class="nav-link"><i class="fas fa-arrow-left"></i> Volver al Bot</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="logout.php" class="nav-link logout-link" onclick="return confirm('¿Cerrar sesión?')"><i class="fas fa-sign-out-alt"></i> Cerrar Sesión</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
Reference in New Issue
Block a user