From c4383a4d6bc314fdd95c4781e351c6c4cc5a149d Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Mon, 24 Nov 2025 16:51:20 -0600 Subject: [PATCH] sort marca --- src/components/AgregarEquipo.tsx | 7 +++- src/components/BarNavigation.tsx | 3 +- src/components/BarNavigationAdmin.tsx | 5 ++- src/components/Equipo_Computo/Pregunta1.tsx | 2 +- src/middleware.ts | 18 -------- src/proxy.ts | 46 +++++++++++++++++++++ 6 files changed, 58 insertions(+), 23 deletions(-) delete mode 100644 src/middleware.ts create mode 100644 src/proxy.ts diff --git a/src/components/AgregarEquipo.tsx b/src/components/AgregarEquipo.tsx index 8d5232e..87ca839 100644 --- a/src/components/AgregarEquipo.tsx +++ b/src/components/AgregarEquipo.tsx @@ -155,8 +155,13 @@ export default function Page() { axios.get(`${api_url}/equipos/laboratorios`, { headers }), axios.get(`${api_url}/equipos/proyectos`, { headers }), ]); + + const ordenados = marcasRes.data.sort((a: Marca, b: Marca) => + a.marca.localeCompare(b.marca) + ); + setTiposUso(usosRes.data); - setMarcas(marcasRes.data); + setMarcas(ordenados); setEstados(estadosRes.data); setAdscripciones(adscripcionesRes.data); setTiposEquipo(tiposEquipoRes.data); diff --git a/src/components/BarNavigation.tsx b/src/components/BarNavigation.tsx index bf2a026..ffc898f 100644 --- a/src/components/BarNavigation.tsx +++ b/src/components/BarNavigation.tsx @@ -13,7 +13,8 @@ function BarNavigation() { const cerrarSesion = () => { if (typeof window !== "undefined") { - localStorage.removeItem("loggedIn"); + document.cookie = + "token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict"; router.push("/"); } setOpenMenu(false); diff --git a/src/components/BarNavigationAdmin.tsx b/src/components/BarNavigationAdmin.tsx index 55a1f25..68063b5 100644 --- a/src/components/BarNavigationAdmin.tsx +++ b/src/components/BarNavigationAdmin.tsx @@ -13,7 +13,8 @@ function BarNavigation() { const cerrarSesion = () => { if (typeof window !== "undefined") { - localStorage.removeItem("loggedIn"); + document.cookie = + "token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict"; router.push("/"); } setOpenMenu(false); @@ -43,7 +44,7 @@ function BarNavigation() { Equipo de Computo -
  • +
  • Perifericos diff --git a/src/components/Equipo_Computo/Pregunta1.tsx b/src/components/Equipo_Computo/Pregunta1.tsx index d2cb113..20e5a6d 100644 --- a/src/components/Equipo_Computo/Pregunta1.tsx +++ b/src/components/Equipo_Computo/Pregunta1.tsx @@ -1,6 +1,6 @@ "use client"; -import React, { useState, useEffect } from "react"; +import { useState, useEffect } from "react"; import axios from "axios"; import Cookies from "js-cookie"; import "./pregunta1.1.css"; diff --git a/src/middleware.ts b/src/middleware.ts deleted file mode 100644 index 1579800..0000000 --- a/src/middleware.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NextResponse } from "next/server"; -import type { NextRequest } from "next/server"; - -export function middleware(request: NextRequest) { - const token = request.cookies.get("token")?.value; - - if (!token) { - console.log("No hay token, redirigiendo a la página de inicio de sesión"); - return NextResponse.redirect(new URL("/", request.url)); - } - - return NextResponse.next(); -} - -export const config = { - matcher: ["/escaner","/agregarEquipo","/editar","/crearCuenta","/equipoComputo","/perifericos"], -}; -//IO diff --git a/src/proxy.ts b/src/proxy.ts new file mode 100644 index 0000000..1e55642 --- /dev/null +++ b/src/proxy.ts @@ -0,0 +1,46 @@ +import { NextResponse } from "next/server"; +import type { NextRequest } from "next/server"; +import { jwtDecode } from "jwt-decode"; + +const permisos: Record = { + 1: ["/crearCuenta", "/equipoComputo", "/perifericos","/escaner", "/agregarEquipo", "/editar"], + 2: ["/escaner", "/agregarEquipo", "/editar"], +}; + +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: [ + "/escaner", + "/agregarEquipo", + "/editar", + "/crearCuenta", + "/equipoComputo", + "/perifericos", + ], +}; +//IO