Ejemplo n.º 1
0
        public JsonResult CargarEnfasisDeCarrera(string value)
        {
            List <string> enfasis = new List <string>();

            using (var context = new DataIntegradorEntities())
            {
                /*Utiliza una función almacenada para obtener los énfasis que tiene una determinada carrera.*/
                var listaEnfasis = from Carrera in db.EnfasisXCarrera(value)
                                   select Carrera;
                foreach (var codigoEnfasis in listaEnfasis)
                {
                    string nombreEnfasis = db.Enfasis.Find(value, codigoEnfasis.codEnfasis).Nombre;
                    /*TAM-11.1: En la página de administración de perfiles y permisos solo se muestran las carreras y énfasis en los que el usuario tiene potestad en los dropdowns.*/
                    if (permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), value, codigoEnfasis.codEnfasis, Permission.ASIGNAR_PERFILES_USUARIOS) ||
                        permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), value, codigoEnfasis.codEnfasis, Permission.ASIGNAR_PERMISOS_PERFILES))
                    {
                        enfasis.Add(codigoEnfasis.codEnfasis + "," + nombreEnfasis);
                    }
                }
            }
            return(Json(new { data = enfasis }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        public PermissionsViewHolder()
        {
            List <Perfil> perfiles = db.Perfil.ToList();

            this.Perfiles = new List <PerfilCodigo>();
            int count = 0;

            foreach (Perfil perfil in perfiles)
            {
                this.Perfiles.Add(new PerfilCodigo(perfil.Nombre, count++));
            }

            List <Carrera> CarrerasUsuario = new List <Carrera>();
            List <Enfasis> EnfasisUsuario  = new List <Enfasis>();

            using (var context = new DataIntegradorEntities())
            {
                /*TAM-11.1: En la página de administración de permisos y perfiles solo se muestran las carreras y énfasis en las que el usuario tiene postestad, en los dropdowns.*/
                var tuplas = from Dato in db.CarrerasYEnfasisXUsuarioXPerfil(CurrentUser.getUsername(), CurrentUser.getUserProfile())
                             select Dato;
                foreach (var tupla in tuplas)
                {
                    Carrera carrera = new Carrera {
                        Codigo = tupla.CodCarrera, Nombre = tupla.NombreCarrera
                    };
                    if (!CarrerasUsuario.Contains(carrera) && (
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, Permission.ASIGNAR_PERFILES_USUARIOS) ||
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, Permission.ASIGNAR_PERMISOS_PERFILES)))
                    {
                        CarrerasUsuario.Add(carrera);
                    }

                    Enfasis enfasis = new Enfasis {
                        CodCarrera = tupla.CodCarrera, Codigo = tupla.CodEnfasis, Nombre = tupla.NombreEnfasis
                    };
                    if (!EnfasisUsuario.Contains(enfasis) && (
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, enfasis.Codigo, Permission.ASIGNAR_PERFILES_USUARIOS) ||
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, enfasis.Codigo, Permission.ASIGNAR_PERMISOS_PERFILES)))
                    {
                        EnfasisUsuario.Add(enfasis);
                    }
                }
            }

            this.Carreras    = CarrerasUsuario.Distinct(new ComparadorCarreras()).ToList();
            this.EnfasisView = EnfasisUsuario.Distinct(new ComparadorEnfasis()).ToList();

            this.Permisos = db.Permiso.ToList();
            foreach (Permiso permiso in this.Permisos)
            {
                permiso.ActiveInProfileEmph = false;
            }
            /*Lista todas las personas en la base de datos del sistema, ordenadas por apellidos y luego por nombres.*/

            /*El usuario [email protected] no se muestra para que no se pueda quitar permisos él mismo. Por defecto ya
             * tiene todos los permisos disponibles.*/


            this.Personas = db.Persona.Where(item => !item.Borrado && item.Correo != "*****@*****.**").
                            OrderBy(item => item.Apellido1).
                            ThenBy(item => item.Apellido2).
                            ThenBy(item => item.Nombre1).
                            ThenBy(item => item.Nombre2).
                            ToList();

            ObjectParameter resultado          = new ObjectParameter("resultado", typeof(bool));
            List <Persona>  personasEliminadas = new List <Persona>();

            foreach (Persona persona in this.Personas)
            {
                persona.HasProfileInEmph = false;
            }

            this.ListaCarreras = GetCarreras();
            this.ListaPermisos = GetPermisos();
            this.ListaEnfasis  = GetEnfasis();
            this.ListaPerfiles = GetPerfiles();
            this.ListaPersonas = GetPersonas();
            this.ConcatenarNombresPersonas();
        }