diff --git a/Aspnet/Controllers/AdminController.cs b/Aspnet/Controllers/AdminController.cs new file mode 100644 index 0000000..b3f4b6b --- /dev/null +++ b/Aspnet/Controllers/AdminController.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNetCore.Mvc; +using Modelo; +using Entidades.Admin; +namespace AlquilaFacil.Controllers; + +[ApiController] +public class AdminController: ControllerBase +{ + [HttpGet("api/admin/clientes")] + public IActionResult GetClientes([FromHeader(Name ="Auth")]string Auth){ + if (String.IsNullOrEmpty(Auth)) return Unauthorized(); + var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 9); + if (validacion1 == false) return Unauthorized(); + + IEnumerablelist = RepositorioUsuarios.Singleton.GetClientes(); + return Ok(list); + } + + [HttpGet("api/admin/clientes/grupo")] + public IActionResult GetGruposByCliente([FromHeader(Name ="Auth")]string Auth, [FromQuery]long Dni){ + if (String.IsNullOrEmpty(Auth)) return Unauthorized(); + var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 9); + if (validacion1 == false) return Unauthorized(); + + if (Dni <= 0) return BadRequest(new {message = "No puede tener un dni con numero negativo o cero"}); + + IEnumerable list = RepositorioGrupos.Singleton.ObtenerGruposPorDni(Dni); + return Ok(list); + + } +} \ No newline at end of file diff --git a/Entidades/Admin/GrupoAdmin.cs b/Entidades/Admin/GrupoAdmin.cs new file mode 100644 index 0000000..a25dd9c --- /dev/null +++ b/Entidades/Admin/GrupoAdmin.cs @@ -0,0 +1,7 @@ +namespace Entidades.Admin; + +public class GrupoAdmin { + public int Id {get; set;} = 0; + public String Descripcion {get; set;} = ""; + public List Permisos {get; set;} = new(); +} \ No newline at end of file diff --git a/Entidades/Admin/PermisosAdmin.cs b/Entidades/Admin/PermisosAdmin.cs new file mode 100644 index 0000000..aba95e0 --- /dev/null +++ b/Entidades/Admin/PermisosAdmin.cs @@ -0,0 +1,6 @@ +namespace Entidades.Admin; + +public class PermisoAdmin { + public int Id {get; set;} + public String Descripcion {get; set;} = ""; +} \ No newline at end of file diff --git a/Entidades/Admin/UsuarioAdmin.cs b/Entidades/Admin/UsuarioAdmin.cs new file mode 100644 index 0000000..6833961 --- /dev/null +++ b/Entidades/Admin/UsuarioAdmin.cs @@ -0,0 +1,8 @@ +namespace Entidades.Admin; + +public record UsuarioAdmin { + public long Dni { get; set; } = 0; + public string Nombre { get; set; } = ""; + public string Email { get; set; } = ""; + public ulong Habilitado { get; set; } +} \ No newline at end of file diff --git a/Entidades/Dto/CrearContratoDto.cs b/Entidades/Dto/CrearContratoDto.cs index 065237e..bfd023f 100644 --- a/Entidades/Dto/CrearContratoDto.cs +++ b/Entidades/Dto/CrearContratoDto.cs @@ -1,5 +1,5 @@ namespace Entidades.Dto; - +//WIP public class CrearContratoDto { public int Meses {get; set;} public int Idpropiedad {get; set;} diff --git a/Front/src/App.svelte b/Front/src/App.svelte index fcfeaf0..2c8e293 100644 --- a/Front/src/App.svelte +++ b/Front/src/App.svelte @@ -14,6 +14,7 @@ import FrontPropietario from "./paginas/grupos/PropietarioG.svelte"; import PublicarPropiedad from "./paginas/PublicarPropiedad.svelte"; import BusquedaPropiedades from "./paginas/BusquedaPropiedades.svelte"; + import ControlUsuarios from "./paginas/ControlUsuarios.svelte"; @@ -61,6 +62,12 @@ + + + + + + diff --git a/Front/src/Componentes/BarraHorizontalConTexto.svelte b/Front/src/Componentes/BarraHorizontalConTexto.svelte index 6a48406..82a7aba 100644 --- a/Front/src/Componentes/BarraHorizontalConTexto.svelte +++ b/Front/src/Componentes/BarraHorizontalConTexto.svelte @@ -1,11 +1,11 @@

-
{prop.text}
+
{text}

\ No newline at end of file diff --git a/Front/src/Componentes/RowPropiedad.svelte b/Front/src/Componentes/RowPropiedad.svelte index b979573..819efa9 100644 --- a/Front/src/Componentes/RowPropiedad.svelte +++ b/Front/src/Componentes/RowPropiedad.svelte @@ -47,7 +47,6 @@ {servicios} - diff --git a/Front/src/paginas/ControlUsuarios.svelte b/Front/src/paginas/ControlUsuarios.svelte new file mode 100644 index 0000000..7507029 --- /dev/null +++ b/Front/src/paginas/ControlUsuarios.svelte @@ -0,0 +1,165 @@ + + + + +{#if modaldata} + !!(modaldata = "")}/> +{/if} + +
+
+
+ + +
+ + + + + + + + + + + {#each Clientes as cli} + cargaGrupos(cli.dni)} in:fade> + + + + + + {/each} + +
DniNombre/ApellidoEmail
{cli.dni}{cli.nombre}{cli.email} + {#if cli.habilitado} + + {:else} + + {/if} +
+
+
+
+ + + + + + + + + + + {#each Grupos as g} + + + + + + {/each} + +
IdDescripcion
{g.id}{g.descripcion}
+ + {#if showAddmenu} +
+ + +
+
+ + +
+ +
+
+ {/if} +
+
+
+ \ No newline at end of file diff --git a/Front/src/paginas/MisPropiedades.svelte b/Front/src/paginas/MisPropiedades.svelte index a1e882c..0ce5d0a 100644 --- a/Front/src/paginas/MisPropiedades.svelte +++ b/Front/src/paginas/MisPropiedades.svelte @@ -5,6 +5,7 @@ import RowPropiedad from "../Componentes/RowPropiedad.svelte"; import type { PropiedadDto } from "../types"; import { urlG } from "../stores/urlStore"; + import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte"; let propiedades = writable([]); let email = localStorage.getItem("email"); @@ -39,11 +40,9 @@ -

- Propiedades de Alta -

-
- + +
+
@@ -53,12 +52,12 @@ + {#each $propiedades as propiedad} - {/each}
#Piso Tipo Servicios
diff --git a/Front/src/paginas/MisPropiedadesDeBaja.svelte b/Front/src/paginas/MisPropiedadesDeBaja.svelte index 48cafc0..b1c5890 100644 --- a/Front/src/paginas/MisPropiedadesDeBaja.svelte +++ b/Front/src/paginas/MisPropiedadesDeBaja.svelte @@ -5,6 +5,7 @@ import RowPropiedad from "../Componentes/RowPropiedad.svelte"; import type { PropiedadDto } from "../types"; import { urlG } from "../stores/urlStore"; + import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte"; let propiedades = writable([]); let email = localStorage.getItem("email"); @@ -39,11 +40,10 @@ -

- Propiedades de Baja -

-
- + + +
+
@@ -53,12 +53,12 @@ + {#each $propiedades as propiedad} - {/each}
#Piso Tipo Servicios
diff --git a/Front/src/types.d.ts b/Front/src/types.d.ts index a9f26ca..5634317 100644 --- a/Front/src/types.d.ts +++ b/Front/src/types.d.ts @@ -12,6 +12,13 @@ export type Permiso = { descripcion: string; }; +export type Cliente = { + dni: number, + nombre: string, + email: string, + habilitado: boolean +} + export type Grupo = { id: number; nombre: string; diff --git a/Modelo/RepositorioGrupos.cs b/Modelo/RepositorioGrupos.cs index c8bef71..28e1fa3 100644 --- a/Modelo/RepositorioGrupos.cs +++ b/Modelo/RepositorioGrupos.cs @@ -1,6 +1,5 @@ -#if DEBUG - using Entidades; +using Entidades.Admin; using Microsoft.EntityFrameworkCore; namespace Modelo; @@ -23,6 +22,14 @@ public class RepositorioGrupos: RepositorioBase { var con = Context; return con.Grupos.Where(x=>x.Nombre == grupo).SelectMany(x => x.Idpermisos); } -} -#endif \ No newline at end of file + public IQueryable ObtenerGruposPorDni(long Dni) { + var con = Context; + var grupos = con.Clientes.Where(x=>x.Dni == Dni).SelectMany(x=>x.Idgrupos) + .Select(x=> new GrupoAdmin{ + Id = x.Id, + Descripcion = x.Nombre, + }); + return grupos; + } +} \ No newline at end of file diff --git a/Modelo/RepositorioUsuarios.cs b/Modelo/RepositorioUsuarios.cs index ede9978..a2db2c0 100644 --- a/Modelo/RepositorioUsuarios.cs +++ b/Modelo/RepositorioUsuarios.cs @@ -119,4 +119,14 @@ public class RepositorioUsuarios: RepositorioBase { return ret; } + + public IEnumerable GetClientes(){ + var con = Context; + var list = con.Clientes.ToList().Select(x => new Entidades.Admin.UsuarioAdmin { + Dni = x.Dni, + Email = x.Email, + Nombre = x.Nombre+" "+x.Apellido, + Habilitado = x.Habilitado}); + return list; + } }