From 50bb59e15f20f88e1a39f66cc362439c8a00a8be Mon Sep 17 00:00:00 2001 From: fede Date: Sun, 24 Nov 2024 22:47:38 -0300 Subject: [PATCH] =?UTF-8?q?FEAT:=20hecho=20el=20arreglo=20de=20los=20boton?= =?UTF-8?q?es=20y=20empec=C3=A9=20con=20el=20registro=20de=20propiedades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aspnet/Controllers/AccionesController.cs | 28 ++++-- Aspnet/Controllers/GruposController.cs | 5 - Entidades/Dto/AccionesDeGrupo.cs | 2 + Front/src/App.svelte | 43 +++++++-- .../BarraHorizontalConTexto.svelte | 0 .../{lib => Componentes}/FormPostCli.svelte | 0 Front/src/Componentes/ListaAcciones.svelte | 48 ++++++++++ .../NavBarAutocompletable.svelte | 11 ++- .../{lib => Componentes}/NavBarLogin.svelte | 0 .../{lib => Componentes}/RutaProtegida.svelte | 0 Front/src/{lib => Componentes}/css/popup.css | 0 Front/src/{lib => Componentes}/login.svelte | 0 Front/src/Menu/page.svelte | 6 -- Front/src/login/loginPage.svelte | 10 -- Front/src/paginas/PublicarPropiedad.svelte | 91 +++++++++++++++++++ Front/src/paginas/grupos/AdminG.svelte | 14 +++ Front/src/paginas/grupos/EstadisticaG.svelte | 5 + Front/src/paginas/grupos/InquilinoG.svelte | 14 +++ Front/src/paginas/grupos/PropietarioG.svelte | 13 +++ .../{Info/page.svelte => paginas/info.svelte} | 4 +- .../page.svelte => paginas/inquilino.svelte} | 6 +- Front/src/paginas/login.svelte | 10 ++ Front/src/paginas/menu.svelte | 6 ++ .../propiedades.svelte} | 0 .../propietario.svelte} | 6 +- Modelo/RepositorioGrupos.cs | 6 +- Modelo/RepositorioPropiedades.cs | 4 +- Modelo/RepositorioUsuarios.cs | 18 +++- 28 files changed, 299 insertions(+), 51 deletions(-) create mode 100644 Entidades/Dto/AccionesDeGrupo.cs rename Front/src/{lib => Componentes}/BarraHorizontalConTexto.svelte (100%) rename Front/src/{lib => Componentes}/FormPostCli.svelte (100%) create mode 100644 Front/src/Componentes/ListaAcciones.svelte rename Front/src/{lib => Componentes}/NavBarAutocompletable.svelte (89%) rename Front/src/{lib => Componentes}/NavBarLogin.svelte (100%) rename Front/src/{lib => Componentes}/RutaProtegida.svelte (100%) rename Front/src/{lib => Componentes}/css/popup.css (100%) rename Front/src/{lib => Componentes}/login.svelte (100%) delete mode 100644 Front/src/Menu/page.svelte delete mode 100644 Front/src/login/loginPage.svelte create mode 100644 Front/src/paginas/PublicarPropiedad.svelte create mode 100644 Front/src/paginas/grupos/AdminG.svelte create mode 100644 Front/src/paginas/grupos/EstadisticaG.svelte create mode 100644 Front/src/paginas/grupos/InquilinoG.svelte create mode 100644 Front/src/paginas/grupos/PropietarioG.svelte rename Front/src/{Info/page.svelte => paginas/info.svelte} (83%) rename Front/src/{Inquilino/page.svelte => paginas/inquilino.svelte} (84%) create mode 100644 Front/src/paginas/login.svelte create mode 100644 Front/src/paginas/menu.svelte rename Front/src/{Propiedades/page.svelte => paginas/propiedades.svelte} (100%) rename Front/src/{Propietario/page.svelte => paginas/propietario.svelte} (84%) diff --git a/Aspnet/Controllers/AccionesController.cs b/Aspnet/Controllers/AccionesController.cs index 4772e51..9be95b8 100644 --- a/Aspnet/Controllers/AccionesController.cs +++ b/Aspnet/Controllers/AccionesController.cs @@ -1,24 +1,40 @@ +using System.ComponentModel.DataAnnotations; using Entidades.Dto; using Microsoft.AspNetCore.Mvc; using Modelo; +using System.Text.Json; + namespace AlquilaFacil.Controllers; [ApiController] public class AccionesController: ControllerBase { - //Reutilizo el loginDto pero no lleno el campo de contraseña - [HttpPost("api/acciones")] - public IActionResult ListarAccionesPorUsuario([FromBody] LoginDto email, [FromHeader(Name = "Auth")] string Auth) { - if (email.Email == "" || email.Email == null) return BadRequest(); + [HttpGet("api/acciones")] + public IActionResult ListarAccionesPorUsuario([FromHeader(Name ="Email")] string Email, [FromHeader(Name = "Auth")] string Auth) { + if (Email == "" || Email == null) return BadRequest(); if (Auth == "") return Unauthorized(new { esValido = false}); - bool esValido = RepositorioUsuarios.Singleton.CheckToken(email.Email, Auth); + bool esValido = RepositorioUsuarios.Singleton.CheckToken(Email, Auth); if (!esValido) return Unauthorized(); - var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email.Email); + var Permisos = RepositorioPermisos.Singleton.ListarPermisos(Email); Response.Headers["Content-Type"] = "application/json"; return Ok(Permisos); } + + [HttpPost("api/acciones/grupo")] + public IActionResult ListarAccionesPorGrupo([FromHeader(Name = "Auth")] string Auth, + [FromBody] AccionesPorGrupoDto req) { + if (string.IsNullOrEmpty(Auth)) return BadRequest(); + bool esValido = RepositorioUsuarios.Singleton.CheckToken(req.Email, Auth); + if (esValido == false) return BadRequest(esValido); + + bool tieneGrupo = RepositorioUsuarios.Singleton.CheckGrupo(req.Email, req.Grupo); + if (tieneGrupo == false) return Unauthorized(); + + var permisos = RepositorioGrupos.Singleton.ListarPermisosDeGrupo(req.Grupo); + return Ok(permisos); + } } \ No newline at end of file diff --git a/Aspnet/Controllers/GruposController.cs b/Aspnet/Controllers/GruposController.cs index 31f8ffa..be028f2 100644 --- a/Aspnet/Controllers/GruposController.cs +++ b/Aspnet/Controllers/GruposController.cs @@ -16,11 +16,6 @@ public class GruposController: ControllerBase { bool ret = RepositorioGrupos.Singleton.CrearGrupo(grupo.descripcion); return (ret) ? Ok(ret) : BadRequest(); } - - [HttpGet("api/admin/grupos")] - public IActionResult ListarGrupo(){ - return Ok(RepositorioGrupos.Singleton.Listar()); - } } public record AdminGrupo(string descripcion); diff --git a/Entidades/Dto/AccionesDeGrupo.cs b/Entidades/Dto/AccionesDeGrupo.cs new file mode 100644 index 0000000..a3e4b29 --- /dev/null +++ b/Entidades/Dto/AccionesDeGrupo.cs @@ -0,0 +1,2 @@ +namespace Entidades.Dto; +public record AccionesPorGrupoDto(string Email, string Grupo); \ No newline at end of file diff --git a/Front/src/App.svelte b/Front/src/App.svelte index 5e2a448..95c0f96 100644 --- a/Front/src/App.svelte +++ b/Front/src/App.svelte @@ -1,15 +1,25 @@ - + + @@ -18,6 +28,11 @@ + + + + + @@ -27,5 +42,19 @@ + + + + + + + + + + + + + + diff --git a/Front/src/lib/BarraHorizontalConTexto.svelte b/Front/src/Componentes/BarraHorizontalConTexto.svelte similarity index 100% rename from Front/src/lib/BarraHorizontalConTexto.svelte rename to Front/src/Componentes/BarraHorizontalConTexto.svelte diff --git a/Front/src/lib/FormPostCli.svelte b/Front/src/Componentes/FormPostCli.svelte similarity index 100% rename from Front/src/lib/FormPostCli.svelte rename to Front/src/Componentes/FormPostCli.svelte diff --git a/Front/src/Componentes/ListaAcciones.svelte b/Front/src/Componentes/ListaAcciones.svelte new file mode 100644 index 0000000..d93319e --- /dev/null +++ b/Front/src/Componentes/ListaAcciones.svelte @@ -0,0 +1,48 @@ + + +
+ {#each $permisos as item} + + {item.descripcion} + + {/each} +
\ No newline at end of file diff --git a/Front/src/lib/NavBarAutocompletable.svelte b/Front/src/Componentes/NavBarAutocompletable.svelte similarity index 89% rename from Front/src/lib/NavBarAutocompletable.svelte rename to Front/src/Componentes/NavBarAutocompletable.svelte index 7ba3452..ad8a925 100644 --- a/Front/src/lib/NavBarAutocompletable.svelte +++ b/Front/src/Componentes/NavBarAutocompletable.svelte @@ -23,12 +23,12 @@ async function obtenerPermisos(){ try { const response = await fetch("http://localhost:5007/api/acciones",{ - method: 'POST', + method: 'GET', headers: { 'Auth' : String(token), + 'Email' : String(email), 'Content-Type' : "application/json" }, - body: JSON.stringify({email}) }); if (response.ok){ const json = await response.json(); @@ -45,7 +45,10 @@ obtenerPermisos(); }) - + function redirijir(path: string){ + location.replace(path); + } + @@ -63,7 +66,7 @@ {#each $permisos as item }