sort marca

This commit is contained in:
2025-11-24 16:51:20 -06:00
parent ff4f8b14ba
commit c4383a4d6b
6 changed files with 58 additions and 23 deletions
+6 -1
View File
@@ -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);
+2 -1
View File
@@ -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);
+3 -2
View File
@@ -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() {
<span>Equipo de Computo</span>
</Link>
</li>
<li className="subMenu" onClick={toggleMenu}>
<li className="subMenu" onClick={toggleMenu}>
<Link href="/perifericos" className="links">
<span>Perifericos</span>
</Link>
+1 -1
View File
@@ -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";
-18
View File
@@ -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
+46
View File
@@ -0,0 +1,46 @@
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { jwtDecode } from "jwt-decode";
const permisos: Record<number, string[]> = {
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