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 }