41 lines
1.1 KiB
C#
41 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);
|
|
|
|
var componentes = new List<IComponenteSeguridad>();
|
|
componentes.AddRange(Idpermisos);
|
|
componentes.AddRange(IdGrupoHijos);
|
|
|
|
foreach (var componente in componentes)
|
|
{
|
|
componente.ObtenerPermisos(permisos, visitados);
|
|
}
|
|
}
|
|
}
|