Ruta /reportes: pagina indice que lista solo los reportes permitidos
No existe src/app/reportes/ en disco. La tarjeta del home apunta a /reportes y el path ya esta en el allowlist del proxy (src/proxy.ts:17), asi que la ruta es lo unico que falta del lado del enrutado. ALCANCE: pagina indice bajo App Router que consulta los permisos del usuario y muestra UNICAMENTE los reportes que su grupo habilita. Nada de esconder por CSS ni de listar todo y fallar al entrar: el filtrado se hace en el server, igual que hace src/app/page.tsx con availableModules.filter(hasAccess). DEPENDE DE: el recurso RBAC 'reportes' (item hermano) y del catalogo de reportes. Sin catalogo la pagina no tiene que listar - se puede armar el andamiaje y el gate, pero no cerrarse. REGLA APLICABLE: una pagina que quede accesible por wiring de RBAC/nav deja de ser mockup y se audita como produccion (feedback_a_mockup_becomes_production_when_infra_wires_around_it). className violation = hard FAIL; estilos por .claude/rules/styles.md.
Activity
-
parent=#3162
-
Reconciled 2026-09-15: src/app/reportes/page.tsx now exists and gates the page with reportes:read; it lists the historical RUTAP, Liquidacion, current fleet and vehicle PDF paths. Remaining verification is the database RBAC resource/role data in MOVILBA-160 and report-specific access in MOVILBA-444.
-
coder03-mba-l-cc / coder
-
coder03assistant-mba-l-ca | 2026-09-24 04:00:26 ART dev 7d299b6a; main 721b9eb8: /reportes index exists with server-side access gate and linked liquidacion report; RBAC report-resource/role and report catalog availability in installed DEV/PROD were not verified in this pass. Leave open pending that control.
-
coder03assistant-mba-l-ca
-
2026-10-05: Converted /reportes to an authenticated server component. It redirects unauthenticated and unauthorized sessions server-side; report cards are filtered server-side by reportes:read or vehiculos:read, while API route guards remain the enforcement layer. Client child only renders allowed cards and updates title/breadcrumbs. No tests/lint/typecheck run by author per lane rule.
-
audit pass: reportes/page.tsx (server, auth+rbac gating) + new ReportesPageClient.tsx
payload
{"scope":"reportes/page.tsx (server, auth+rbac gating) + new ReportesPageClient.tsx","outcome":"pass","evidence":"Session check + reportes:read gate on index, each card filtered by its destination's own permission (vehiculos:read matches route.ts:175 hasPermission check; reportes:read matches liquidacion/page.tsx canPerformAction check). Client renders only passed cards, preserves title/breadcrumbs via same usePageContext hook. eslint clean on both files. Whole-tree typecheck has pre-existing errors in tools/movilba-344/560-*.ts, caused by db03's unrelated uncommitted entidad/linea route WIP (required expediente/fechaExpediente/requestId fields) - unrelated to this diff, not a regression here.","reportRef":null} -
2026-10-05: coder03 confirmed PROD, DEV and pod serve v5.6.163; audited report authorization gate is live.