Files
front-Censo/src/proxy.ts
T

50 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-11-24 16:51:20 -06:00
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { jwtDecode } from "jwt-decode";
const permisos: Record<number, string[]> = {
2026-03-12 18:45:04 -05:00
1: ["/crearCuenta", "/equipoComputo", "/perifericos","/escaner", "/agregarEquipo", "/editar","/historial","/ranking","/cambiarPass","/reportesGraficas"],
2025-12-08 17:12:58 -06:00
2: ["/escaner", "/agregarEquipo", "/editar","/historial","/ranking","/cambiarPass"],
2025-11-24 16:51:20 -06:00
};
export function proxy(request: NextRequest) {
const token = request.cookies.get("token")?.value;
if (!token) {
return NextResponse.redirect(new URL("/", request.url));
}
const decoded: any = jwtDecode(token);
const tipoUsuario = decoded.tipoUsuario
if (!tipoUsuario) {
return NextResponse.redirect(new URL("/", request.url));
}
const pathname = new URL(request.url).pathname;
const rutasPermitidas = permisos[tipoUsuario] ?? [];
if (!rutasPermitidas.includes(pathname)) {
console.log(`Usuario tipo ${tipoUsuario} NO autorizado para: ${pathname}`);
return NextResponse.redirect(new URL("/", request.url));
}
return NextResponse.next();
}
export const config = {
matcher: [
2026-03-13 19:00:27 -05:00
"/escaner",
"/agregarEquipo",
"/editar",
"/crearCuenta",
"/equipoComputo",
"/perifericos",
"/ranking",
"/historial",
"/cambiarPass"
2025-11-24 16:51:20 -06:00
],
};
//IO