42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Entidades;
|
|
|
|
public partial class Grupo : IComponenteSeguridad
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
public string Nombre { get; set; } = null!;
|
|
|
|
public bool? Habilitado { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public virtual ICollection<Grupo> IdGrupoHijos { get; set; } = new List<Grupo>();
|
|
|
|
[JsonIgnore]
|
|
public virtual ICollection<Grupo> IdGrupoPadres { get; set; } = new List<Grupo>();
|
|
|
|
[JsonIgnore]
|
|
public virtual ICollection<Cliente> Idclientes { get; set; } = new List<Cliente>();
|
|
|
|
public virtual ICollection<Permiso> Idpermisos { get; set; } = new List<Permiso>();
|
|
|
|
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados)
|
|
{
|
|
if (visitados.Contains(Id)) return;
|
|
visitados.Add(Id);
|
|
foreach (var permiso in Idpermisos)
|
|
{
|
|
permisos.Add(permiso);
|
|
}
|
|
|
|
foreach (var subgrupo in IdGrupoHijos)
|
|
{
|
|
subgrupo.ObtenerPermisos(permisos, visitados);
|
|
}
|
|
|
|
}
|
|
}
|