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)); }
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(); }