示例#1
0
        private static Permiso ObtenerPermiso(int permisoId, int profundidad)
        {
            Permiso    permiso;
            List <int> hijosIds = new List <int>();

            if (profundidad < 10)
            {
                hijosIds = ObtenerPermisosHijos(permisoId);
            }

            if (hijosIds.Any())
            {
                // Es un permiso compuesto
                permiso = new PermisoCompuesto();
                foreach (int hijoId in hijosIds)
                {
                    Permiso permisoHijo = ObtenerPermiso(hijoId, profundidad + 1);
                    permiso.AgregarPermisoHijo(permisoHijo);
                }
            }
            else
            {
                // Es un permiso simple
                permiso = new PermisoSimple();
            }

            CompletarPermiso(permiso, permisoId);

            return(permiso);
        }
示例#2
0
        private void EdicionPermisosUsuarioForm_Load(object sender, EventArgs e)
        {
            bsPermisosLista = new BindingSource();
            PermisoCompuesto perfil = new PermisoCompuesto();

            perfil.ObtenerHijos().AddRange(Editado.Perfil);
            bsPermisosLista.DataSource = new Permiso().Listar().Where(x => !perfil.EsValido(x.Nombre) && !Editado.Perfil.Contains(x)).ToList().OrderByDescending(x => x.TieneHijos()).ToList();
            ListaPermisos.DataSource   = bsPermisosLista;

            ActualizarArbol();
        }
        private void NuevoGrupoPermisoForm_Load(object sender, EventArgs e)
        {
            bsPermisosLista = new BindingSource();

            if (Editado == null)
            {
                Editado = new PermisoCompuesto();
            }

            txtNombre.DataBindings.Add("Text", Editado, "Nombre");
            txtDescripcion.DataBindings.Add("Text", Editado, "Descripcion");

            bsPermisosLista.DataSource = new Permiso().Listar().Where(x => !Editado.EsValido(x.Nombre) && !(x.Nombre.Equals(Editado.Nombre))).ToList().OrderByDescending(x => x.TieneHijos()).ToList();
            ListaPermisos.DataSource   = bsPermisosLista;
            ActualizarControles();
        }