diff --git a/Aspnet/Controllers/GruposController.cs b/Aspnet/Controllers/GruposController.cs index 5d12051..d8569ff 100644 --- a/Aspnet/Controllers/GruposController.cs +++ b/Aspnet/Controllers/GruposController.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Mvc; using Modelo; using AlquilaFacil.Builder; using Entidades; - +using Entidades.Dto; namespace AlquilaFacil.Controllers; [ApiController] @@ -21,7 +21,7 @@ public class GruposController : ControllerBase .ConNombre(g.Nombre) .ConIdGrupo(g.Id) .ConGruposIncluidos(new HashSet(g.IdGrupoHijos - .Select(id => id.ToString() ?? ""))) + .Select(id => id.Nombre ?? ""))) .ConPermisos(g.Idpermisos.Select(p => new PermisoDtoBuilder() .ConId(p.Id) .ConDescripcion(p.Descripcion) @@ -33,4 +33,16 @@ public class GruposController : ControllerBase return Ok(grupos); } + [HttpPatch("/api/grupo")] + public IActionResult PatchGrupo([FromHeader(Name = "Auth")] string Auth, GrupoDto grupo) + { + var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 18); + if (ret == false) return BadRequest(new { message = "No tiene permiso para Gestionar grupos" }); + + Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); + if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" }); + Console.WriteLine(grupo.GruposIncluidos.Count); + bool ret2 = RepositorioGrupos.Singleton.PatchGrupo(grupo, cli); + return ret2 ? Ok(new { message = "Se Modifico el grupo" }) : BadRequest(new { message = "Fallo al editar el grupo" }); + } } diff --git a/Aspnet/Controllers/PermisoController.cs b/Aspnet/Controllers/PermisoController.cs index 17cc326..f83b1fa 100644 --- a/Aspnet/Controllers/PermisoController.cs +++ b/Aspnet/Controllers/PermisoController.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Mvc; using Modelo; using Entidades.Dto; +using AlquilaFacil.Builder; namespace AlquilaFacil.Controllers; [ApiController] @@ -21,4 +22,17 @@ public class PermisoController : ControllerBase return ret ? Ok() : BadRequest(); } + [HttpGet("/api/permisos/todos")] + public IActionResult ObtenerTodosLosPermisos([FromHeader(Name = "Auth")] string Auth) + { + var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 18); + if (ret == false) return BadRequest(new { message = "No tiene permiso para ver Todos los permisos" }); + + var permisos = RepositorioPermisos.Singleton.ListarPermisos(); + var perms = permisos.Select(permiso => new PermisoDtoBuilder() + .ConId(permiso.Id) + .ConDescripcion(permiso.Descripcion) + .Build()); + return Ok(perms); + } } diff --git a/Front/src/Componentes/ModalEditarGrupo.svelte b/Front/src/Componentes/ModalEditarGrupo.svelte index 97e3dca..1b2277e 100644 --- a/Front/src/Componentes/ModalEditarGrupo.svelte +++ b/Front/src/Componentes/ModalEditarGrupo.svelte @@ -1,21 +1,33 @@ @@ -23,6 +35,7 @@ class="modal show d-block" tabindex="-1" role="dialog" + style="background: rgba(0, 0, 0, 0.5)" aria-labelledby="exampleModalLabel" aria-hidden="true" > @@ -39,7 +52,57 @@ onclick={onClose} > - + + diff --git a/Front/src/paginas/AdminGrupos.svelte b/Front/src/paginas/AdminGrupos.svelte index 88b15a5..23fd4ce 100644 --- a/Front/src/paginas/AdminGrupos.svelte +++ b/Front/src/paginas/AdminGrupos.svelte @@ -1,8 +1,11 @@ +{#if modaldat != ""} + +{/if} + +{#if showModal} + (showModal = false)} + onSubmit={submitedit} + /> +{/if} -
+
+ {#if grupos.length == 0}
@@ -92,7 +162,11 @@

- +
diff --git a/Modelo/RepositorioGrupos.cs b/Modelo/RepositorioGrupos.cs index 795762f..f1b1c97 100644 --- a/Modelo/RepositorioGrupos.cs +++ b/Modelo/RepositorioGrupos.cs @@ -1,10 +1,38 @@ using Entidades; using Entidades.Admin; +using Entidades.Dto; using Microsoft.EntityFrameworkCore; namespace Modelo; public class RepositorioGrupos : RepositorioBase { + public bool PatchGrupo(GrupoDto grupo, Cliente cli) + { + var con = Context; + var g = con.Grupos + .Include(x => x.IdGrupoHijos) + .Include(x => x.Idpermisos).FirstOrDefault(x => x.Id == grupo.idgrupo); + + if (g == null) + { + return false; + } + var listg = grupo.GruposIncluidos.ToList(); + if (grupo.GruposIncluidos != null) + { + g.IdGrupoHijos = con.Grupos.Where(x => listg.Contains(x.Nombre)).ToList(); + + } + + if (grupo.Permisos != null) + { + g.Idpermisos = con.Permisos.Where(x => grupo.Permisos.Select(p => p.Id).Contains(x.Id)).ToList(); + } + + GenerarLog(con, cli.Dni, "Patch Grupo"); + return Guardar(con); + + } public IQueryable ListarTodosLosGrupos() { diff --git a/Modelo/RepositorioPermisos.cs b/Modelo/RepositorioPermisos.cs index 1ac508a..68a7e69 100644 --- a/Modelo/RepositorioPermisos.cs +++ b/Modelo/RepositorioPermisos.cs @@ -19,6 +19,11 @@ public class RepositorioPermisos : RepositorioBase return list; } + public List ListarPermisos() + { + return Context.Permisos.ToList(); + } + public bool CheckPermisos(string token, int idpermiso) { //WIP Aca tengo que modificar esto para que haga una busqueda de profundidad para los permisos