From 6f3d985960d6a4956e8f74efb170c45bff0c4d3b Mon Sep 17 00:00:00 2001 From: fede Date: Thu, 22 May 2025 15:23:49 -0300 Subject: [PATCH] =?UTF-8?q?1.=20Update=20first=20controller:=20-=20Add=20n?= =?UTF-8?q?ew=20method=20`CaminarContraAdmin`=20for=20changing=20contrasec?= =?UTF-8?q?tion=20-=20Include=20HTTP=20PATCH=20handler=20-=20Use=20camelCa?= =?UTF-8?q?se=20for=20class=20names=202.=20Update=20second=20controller:?= =?UTF-8?q?=20-=20Update=20method=20name=20from=20`caminarContrase=C3=B1a`?= =?UTF-8?q?=20to=20`caminarContraAdmin`=20-=20Fix=20message=20"contrase?= =?UTF-8?q?=C3=B1a"=20to=20be=20more=20precise=20("contrase=C3=B1a=20corre?= =?UTF-8?q?cta")=203.=20Update=20modal=20component:=20-=20Change=20`handle?= =?UTF-8?q?Submit`=20event=20from=20`submit`=20(JS)=20to=20`POST`=20(Svelt?= =?UTF-8?q?e)=20-=20Ensure=20form=20validation=20in=20JavaScript=204.=20Up?= =?UTF-8?q?date=20page=20admin/users=20to=20use=20CardLink=20for=20links?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aspnet/Controllers/UsuarioController.cs | 23 ++++++++++ .../Componentes/ModalRestablecerContra.svelte | 44 +++++++++++-------- Front/src/paginas/AdminUsuarios.svelte | 15 ++++--- 3 files changed, 56 insertions(+), 26 deletions(-) diff --git a/Aspnet/Controllers/UsuarioController.cs b/Aspnet/Controllers/UsuarioController.cs index 02b0a16..754ff7d 100644 --- a/Aspnet/Controllers/UsuarioController.cs +++ b/Aspnet/Controllers/UsuarioController.cs @@ -41,6 +41,29 @@ public class UsuarioController : ControllerBase return ret ? Ok(new { message = "Contraseña cambiada con éxito" }) : BadRequest(new { message = "No se pudo cambiar la contraseña" }); } + public class bodyCambiarContraAdmin : bodyCambiarContraseña + { + public long Dni { get; set; } + } + + [HttpPatch("/api/admin/contraseña")] + public IActionResult CambiarPassAdmin([FromHeader(Name = "Auth")] string Auth, [FromBody] bodyCambiarContraAdmin body) + { + var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 9); + if (!ret) return BadRequest(new { message = "No tienes permisos para cambiar contraseñas de usuario" }); + + if (body.contraseña.Length < 8 || string.IsNullOrWhiteSpace(body.contraseña)) return BadRequest(new { message = "La contraseña debe tener al menos 8 caracteres y no puede estar vacía" }); + + if (body.Dni <= 0) return BadRequest(new { message = "El DNI no puede estar vacío" }); + + Cliente? usu = RepositorioUsuarios.Singleton.ObtenerClientePorDni(body.Dni); + if (usu == null) return BadRequest(new { message = "No existe un usuario con ese DNI" }); + + ret = RepositorioUsuarios.Singleton.CambiarContraseña(body.contraseña, usu); + return ret ? Ok(new { message = "Contraseña cambiada con éxito" }) : BadRequest(new { message = "No se pudo cambiar la contraseña" }); + + } + public record setemail(string EmailRecuperacion); [HttpPut("/api/usuario/emailrecuperacion")] public IActionResult CambiarPass([FromHeader(Name = "Auth")] string Auth, [FromBody] setemail setemail) diff --git a/Front/src/Componentes/ModalRestablecerContra.svelte b/Front/src/Componentes/ModalRestablecerContra.svelte index 02b8713..b3d35b7 100644 --- a/Front/src/Componentes/ModalRestablecerContra.svelte +++ b/Front/src/Componentes/ModalRestablecerContra.svelte @@ -4,6 +4,13 @@ submit, }: { close: () => void; submit: (e: Event, pass: string) => void } = $props(); + + let password: string = $state(""); + + function handleSubmit(e: Event) { + e.preventDefault(); + submit(e, password); + }
diff --git a/Front/src/paginas/AdminUsuarios.svelte b/Front/src/paginas/AdminUsuarios.svelte index 05f444c..ac6ba1a 100644 --- a/Front/src/paginas/AdminUsuarios.svelte +++ b/Front/src/paginas/AdminUsuarios.svelte @@ -7,7 +7,7 @@ import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte"; import { fade, fly } from "svelte/transition"; import ModalModificarPropietarios from "../Componentes/ModalModificarPropietarios.svelte"; - import { CardLink } from "@sveltestrap/sveltestrap"; + import { CardLink, Modal } from "@sveltestrap/sveltestrap"; import ModalRestablecerContra from "../Componentes/ModalRestablecerContra.svelte"; let Clientes: Cliente[] = $state([]); @@ -248,20 +248,21 @@ async function handleRestablecerContraseña(e: Event, pass: string) { e.preventDefault(); try { - const req = await fetch($urlG + "", { - method: "POST", + const req = await fetch($urlG + "/api/admin/contraseña", { + method: "PATCH", headers: { Auth: token || "", "Content-Type": "application/json", }, body: JSON.stringify({ Dni: restablecercontracli?.dni, - Pass: pass, + contraseña: pass, }), }); - //WIP - if (req.ok) { - } + const js = await req.json(); + showmodalrestablecercontra = false; + restablecercontracli = null; + modaldata = js.message; } catch { modaldata = "Falla la conexion al servidor"; }