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