avansando más

This commit is contained in:
2025-04-17 13:24:07 -03:00
parent 6fb6ade153
commit c1a27baedd
15 changed files with 477 additions and 262 deletions

View File

@@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore;
namespace Modelo;
public class RepositorioPermisos : RepositorioBase<RepositorioPermisos>
{
public object? ListarPermisos(string email)
public IQueryable<Grupo>? ListarPermisos(string email)
{
var con = Context;
Cliente? cli = con.Clientes.Include(x => x.Idgrupos).FirstOrDefault(c => c.Email == email);
@@ -21,31 +21,20 @@ public class RepositorioPermisos : RepositorioBase<RepositorioPermisos>
public bool CheckPermisos(string token, int idpermiso)
{
// Aca tengo que modificar esto para que haga una busqueda de profundidad para los permisos
//WIP Aca tengo que modificar esto para que haga una busqueda de profundidad para los permisos
//
var con = Context;
bool tienePermiso = false;
//checkeo que el token corresponda a un usuario
Cliente? cli = con.Clientes.FirstOrDefault(x => x.Token == token);
if (cli == null || cli.Dni == 0) return false;
// obtengo una lista de los permisos
var permisos = con.Clientes
.Where(x => x.Dni == cli.Dni)
.SelectMany(x => x.Idgrupos)
.SelectMany(x => x.Idpermisos)
.Distinct();
/////////////////////////////////////////////////////////////////
//Esto esta comentado porque antes pasaba el string del path de la url, es una mala idea a muchos niveles
// abajo un comentario viejo mio
/////////////////////////////////////////////////////////////////
//me inspiré y hice un regex pero si eliminaba los primeros 8(?) caracteres del string era lo mismo
//Match match = Regex.Match(path, @"^/accion/(\d+)$");
//int.TryParse(match.Groups[1].Value, out int idpermiso);
/////////////////////////////////////////////////////////////////
Parallel.ForEach(permisos, (x, i) =>
{
if (x.Id == idpermiso)