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); + }