diff --git a/Aspnet/Controllers/AccionesController.cs b/Aspnet/Controllers/AccionesController.cs index e69516d..240f30c 100644 --- a/Aspnet/Controllers/AccionesController.cs +++ b/Aspnet/Controllers/AccionesController.cs @@ -1,3 +1,4 @@ +using Entidades.Dto; using Microsoft.AspNetCore.Mvc; using Modelo; @@ -7,14 +8,17 @@ namespace AlquilaFacil.Controllers; public class AccionesController: ControllerBase { [HttpPost("api/acciones")] - public IActionResult ListarAccionesPorUsuario([FromBody] string email) { - Request.Cookies.TryGetValue("token", out var token); - if (token == null) return Unauthorized(new { esValido = false}); + public IActionResult ListarAccionesPorUsuario([FromBody] LoginDto email, [FromHeader(Name = "Auth")] string Auth) { + if (email.Email == "" || email.Email == null) return BadRequest(); - bool esValido = RepositorioUsuarios.Singleton.CheckToken(email, token); + + if (Auth == "") return Unauthorized(new { esValido = false}); + + bool esValido = RepositorioUsuarios.Singleton.CheckToken(email.Email, Auth); if (!esValido) return Unauthorized(); - var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email); + var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email.Email); + Response.Headers["Content-Type"] = "application/json"; return Ok(Permisos); } } \ No newline at end of file diff --git a/Aspnet/Controllers/GruposController.cs b/Aspnet/Controllers/GruposController.cs new file mode 100644 index 0000000..df3d5ee --- /dev/null +++ b/Aspnet/Controllers/GruposController.cs @@ -0,0 +1,18 @@ +#if DEBUG +using Microsoft.AspNetCore.Mvc; +using Modelo; +namespace AlquilaFacil.Controllers; + +[ApiController] +public class GruposController: ControllerBase { + [HttpPost("api/admin/grupos")] + public IActionResult CrearPermisos([FromBody] AdminGrupo grupo) { + if (String.IsNullOrEmpty(grupo.descripcion)) return BadRequest(); + + bool ret = RepositorioGrupos.Singleton.CrearGrupo(grupo.descripcion); + return (ret) ? Ok(ret) : BadRequest(); + } +} + +public record AdminGrupo(string descripcion); +#endif \ No newline at end of file diff --git a/Aspnet/Controllers/InquilinoController.cs b/Aspnet/Controllers/InquilinoController.cs index 72b136b..b2c6764 100644 --- a/Aspnet/Controllers/InquilinoController.cs +++ b/Aspnet/Controllers/InquilinoController.cs @@ -12,8 +12,16 @@ public class InquilinoController: ControllerBase { [HttpGet("api/inquilino")] - public IActionResult Get() { - return Ok(); + public IActionResult Get([FromHeader(Name = "Auth")] string Auth) { + if (!string.IsNullOrEmpty(Auth)) return BadRequest(); + string path = Request.Path; + + var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, path); + if (ret == false) return BadRequest(ret); + + var list = RepositorioInquilinos.Singleton.GetInquilinos(); + + return Ok(list); } [HttpPost("api/inquilino")] diff --git a/Aspnet/Controllers/LoginController.cs b/Aspnet/Controllers/LoginController.cs index 706d6cd..2667370 100644 --- a/Aspnet/Controllers/LoginController.cs +++ b/Aspnet/Controllers/LoginController.cs @@ -24,19 +24,19 @@ public class LoginController: ControllerBase var cookieOptions = new CookieOptions { HttpOnly = true, - Secure = true, - //SameSite = SameSiteMode.Strict, - Expires = DateTimeOffset.UtcNow.AddHours(1) + Secure = true, + SameSite = SameSiteMode.None, + Path = "/Menu", + + Expires = DateTimeOffset.UtcNow.AddHours(1) }; Response.Cookies.Append("token", tokenString, cookieOptions); - return Ok( new {Email = loginDto.Email, Redirect = "/Menu"}); + return Ok( new {Email = loginDto.Email, Token = tokenString, Redirect = "/Menu"}); } [HttpPost("api/login/validar")] - public IActionResult Verificar([FromBody] AccessDto request){ - - Request.Cookies.TryGetValue("token", out var token); + public IActionResult Verificar([FromBody] AccessDto request, [FromHeader(Name = "Auth")] string token){ if (request.Email == String.Empty || token == null ||request.Redirect == string.Empty) { @@ -44,8 +44,13 @@ public class LoginController: ControllerBase } bool esValido = RepositorioUsuarios.Singleton.CheckToken(request.Email, token); - return (esValido) ? - Ok( new { esValido = true}) : Unauthorized( new {esValido = false}); + if (esValido) { + return Ok(new {esValido = esValido}); + } else { + + return Unauthorized(new {esValido = "el token no es valido"}); + } + } diff --git a/Aspnet/Controllers/PermisosController.cs b/Aspnet/Controllers/PermisosController.cs new file mode 100644 index 0000000..0cdf113 --- /dev/null +++ b/Aspnet/Controllers/PermisosController.cs @@ -0,0 +1,18 @@ +#if DEBUG +using Microsoft.AspNetCore.Mvc; +using Modelo; +namespace AlquilaFacil.Controllers; + +[ApiController] +public class PermisosController: ControllerBase { + [HttpPost("api/admin/permisos")] + public IActionResult CrearPermisos([FromBody] AdminPermiso permiso) { + if (String.IsNullOrEmpty(permiso.descripcion)) return BadRequest(); + + bool ret = RepositorioPermisos.Singleton.CrearPermiso(permiso.descripcion); + return (ret) ? Ok(ret) : BadRequest(); + } +} + +public record AdminPermiso(string descripcion); +#endif \ No newline at end of file diff --git a/Entidades/Dto/InquilinoDto.cs b/Entidades/Dto/InquilinoDto.cs new file mode 100644 index 0000000..c02552b --- /dev/null +++ b/Entidades/Dto/InquilinoDto.cs @@ -0,0 +1,8 @@ +namespace Entidades.Dto; + +public class InquilinoDto { + public long Dni { get; set; } + public string Nombre { get; set; } = ""; + public string Apellido { get; set; } = ""; + +} \ No newline at end of file diff --git a/Entidades/Dto/LoginDto.cs b/Entidades/Dto/LoginDto.cs index 795194f..568ecf2 100644 --- a/Entidades/Dto/LoginDto.cs +++ b/Entidades/Dto/LoginDto.cs @@ -1,9 +1,7 @@ -using System.ComponentModel.DataAnnotations.Schema; - namespace Entidades.Dto; public class LoginDto { public string Email {get; set;} = string.Empty; - public string Contraseña {get; set;} = string.Empty; + public string? Contraseña {get; set;} = string.Empty; } diff --git a/Front/src/lib/NavBarAutocompletable.svelte b/Front/src/lib/NavBarAutocompletable.svelte index 54c4262..dff21f9 100644 --- a/Front/src/lib/NavBarAutocompletable.svelte +++ b/Front/src/lib/NavBarAutocompletable.svelte @@ -1,44 +1,59 @@ - AlquilaFacil + + AlquilaFacil + (isOpen = !isOpen)} /> - + diff --git a/Front/src/lib/NavBarLogin.svelte b/Front/src/lib/NavBarLogin.svelte index 79e38e5..556024e 100644 --- a/Front/src/lib/NavBarLogin.svelte +++ b/Front/src/lib/NavBarLogin.svelte @@ -1,9 +1,8 @@ @@ -12,7 +11,7 @@ AlquilaFacil (isOpen = !isOpen)} /> - +