Documentación: visibilidad por rol en cada documento y una sola entrada de menú

Un documento puede declarar qué roles lo ven mediante una cabecera al inicio
del archivo; sin ella hereda el permiso de su sección. Los administradores ven
todo. Se aplica tanto al índice como al acceso directo por URL, y una sección
que queda sin documentos visibles deja de mostrarse.

Con esto un recepcionista ve solo el manual de recepción, un bacteriólogo el de
toma de muestras y un enfermero el suyo, en vez del manual completo.

El módulo declaraba cinco enlaces que apuntaban todos a la misma vista, así que
al abrir una sección quedaban dos entradas marcadas como activas a la vez. Queda
una sola, "Documentación": la navegación por secciones ya vive dentro de la
página.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-04 10:37:33 -05:00
co-authored by Claude Opus 5
parent 32c209710c
commit dc27184051
8 changed files with 97 additions and 17 deletions
+3 -13
View File
@@ -5,23 +5,13 @@
* de secciones (técnica, arquitectura, operación) solo para administradores.
*/
$_sopEsAdmin = in_array($_SESSION['admin_user']['role'] ?? '', ['admin', 'superadmin'], true);
// Una sola entrada en el menú: la navegación por secciones y documentos vive
// dentro de la propia página. Tener aquí un enlace por sección hacía que al
// abrir una quedaran dos entradas marcadas como activas a la vez.
$_sopLinks = [
['name' => 'Documentación', 'icon' => 'fas fa-book', 'route' => '/erp.php?m=soporte&v=documentacion'],
['name' => 'Manual de usuario', 'icon' => 'fas fa-book-reader',
'route' => '/erp.php?m=soporte&v=documentacion&s=manual'],
];
if ($_sopEsAdmin) {
$_sopLinks[] = ['name' => 'Documentación técnica', 'icon' => 'fas fa-code',
'route' => '/erp.php?m=soporte&v=documentacion&s=tecnica'];
$_sopLinks[] = ['name' => 'Arquitectura', 'icon' => 'fas fa-sitemap',
'route' => '/erp.php?m=soporte&v=documentacion&s=arquitectura'];
$_sopLinks[] = ['name' => 'Operación y soporte', 'icon' => 'fas fa-life-ring',
'route' => '/erp.php?m=soporte&v=documentacion&s=operacion'];
}
return [
'slug' => 'soporte',
'name' => 'Soporte',