public async Task <ActionResult> Indicadorpop(int indicadorid = 0, string tipo = "", string mensaje = "") { IndicadorsController controlIndicador = new IndicadorsController(db, userManager); ResponsablesController controlResponsable = new ResponsablesController(db, userManager); ConfiguracionsController controlConfiguracion = new ConfiguracionsController(db, userManager); int ID = Convert.ToInt32(indicadorid); Indicador indicador = await controlIndicador.getFromId(ID); if (User.Identity.Name != null) { var userFull = await userManager.FindByEmailAsync(User.Identity.Name); // obtiene las categorias var idsx = controlResponsable.GetAllIdsFromResponsable(userFull.IDDependencia); var notasE = User.HasClaim(c => (c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/Nota.Editar" && c.Value == "1")); var super = User.HasClaim(c => (c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/Super" && c.Value == "1")); ViewBag.tipo = tipo; ViewBag.mensaje = mensaje; ViewBag.editar = controlConfiguracion.Editable(userFull.IDDependencia, indicador.Categoria, notasE, super); ViewBag.visible = true; ViewBag.configuracion = await controlConfiguracion.Get(); ViewBag.indicador = indicador; ViewBag.userFull = userFull; ViewBag.PermisoResponsable = idsx; } else { Configuracion config = await controlConfiguracion.Get(); ViewBag.tipo = tipo; ViewBag.mensaje = mensaje; ViewBag.editar = false; ViewBag.userFull = false; ViewBag.configuracion = config; ViewBag.visible = config.libre; ViewBag.PermisoResponsable = false; } var notas = await db.NotaIndicador.Include(n => n.Indicador).Include(n => n.User).Where(n => n.IdIndicador == ID).OrderByDescending(n => n.FechaCreacion).ToListAsync(); return(View(notas.ToList())); }
public bool Editable(int idresponsable, Categoria categoria, bool permiso, bool super) { ResponsablesController controlResponsable = new ResponsablesController(db, userManager); var ids = controlResponsable.GetAllIdsFromResponsable(idresponsable); //if ((responsable.Id == categoria.Responsable.Id && permiso) ||super) if (((ids.Contains(idresponsable)) && permiso) || super) { return(true); } else { return(false); } }
public async Task <bool> PermisoMostrarEditarIndicador(System.Security.Claims.ClaimsPrincipal user, Indicador indicador) { ResponsablesController controlResponsable = new ResponsablesController(db, userManager); var userFull = await userManager.FindByEmailAsync(user.Identity.Name); var ids = controlResponsable.GetAllIdsFromResponsable(userFull.IDDependencia); //---------------------- hernecia de responsabilidades if (((ids.Contains(indicador.Categoria.IdResponsable)) && user.HasClaim(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/Indicador.Editar" && c.Value == "1"))) //if (super || (usuario.IDDependencia == indicador.Categoria.IdResponsable && permiso )) { return(true); } else { return(false); } }
public async Task <bool> PermisoEditarEjecucionPlaneado(System.Security.Claims.ClaimsPrincipal user, Ejecucion ejecucion) { ResponsablesController controlResponsable = new ResponsablesController(db, userManager); var userFull = await userManager.FindByEmailAsync(user.Identity.Name); var ids = controlResponsable.GetAllIdsFromResponsable(userFull.IDDependencia); //---------------------- hernecia de responsabilidades if (((ids.Contains(ejecucion.Indicador.Categoria.IdResponsable)) && user.HasClaim(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/Planeacion.Editar" && c.Value == "1") && (ejecucion.Periodo.EditarProgramacion == true))) { return(true); } else { return(false); } }