public async Task <bool> Authorize(string funcionalidadCodigo, string actionCodigo) { Guard.AgainstNullOrEmptyString(funcionalidadCodigo, "funcionalidadCodigo"); Guard.AgainstNullOrEmptyString(actionCodigo, "actionCodigo"); //1. Recuperar funcionalides var funcionalidades = _funcionalidadService.GetFuncionalidades(); //2. Recuperar funcionalidad se verificar su autorizacion var funcionalidad = funcionalidades.Where(fun => fun.Codigo == funcionalidadCodigo).SingleOrDefault(); if (funcionalidad == null) { //TODO: JSA, lanzar excepcion si no existe funcionalidad o retornar que no se encuentra autorizado ? log.WarnFormat("No existe la funcionalidad con el codigo [{0}]", funcionalidadCodigo); return(false); } var accion = funcionalidad.Acciones.Where(acc => acc.Codigo == actionCodigo).SingleOrDefault(); if (accion == null) { //TODO: JSA, lanzar excepcion si no existe accion / funcionalidad o retornar que no se encuentra autorizado ? log.WarnFormat("No existe la accion [{0}] en la funcionalidad con el codigo [{1}]", actionCodigo, funcionalidadCodigo); return(false); } return(await Authorize(accion)); }
public JsonResult GetDatosInicio() { var funcionalidades = _funcionalidadService.GetFuncionalidades(); var funcionalidadesAcciones = new List <object>(); foreach (var funcionalidad in funcionalidades) { foreach (var accion in funcionalidad.Acciones) { var funAccion = new { value = accion.Id, label = funcionalidad.Nombre + " - " + accion.Nombre }; funcionalidadesAcciones.Add(funAccion); } } var result = new JsonResult { Data = new { funcionalidadesAcciones }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; return(result); }
public async Task <ActionResult> CreatePermiso(int id) { var rolService = Service as IRolService; var rol = await rolService.GetRolAndPermissions(id); var model = new PermisoViewModel(); model.Rol = rol; model.Funcionalidades = FuncionalidadService.GetFuncionalidades(); return(View(model)); }
public JsonResult GetDatosInicio() { var estados = _catalogoService.GetItemsCatalogo(ConstantesCatalogos.CAT_ESTADO_ENTIDAD); List <object> ests = new List <object>(); foreach (var es in estados) { var estado = new { value = es.Id, label = es.Nombre, es.Codigo }; ests.Add(estado); } var tipoItemMenuContenedor = new { value = TipoItemMenu.Contenedor, label = TipoItemMenu.Contenedor.ToString() }; var tipoItemMenuItemMenu = new { value = TipoItemMenu.ItemMenu, label = TipoItemMenu.ItemMenu.ToString() }; var tiposItemMenu = new[] { tipoItemMenuContenedor, tipoItemMenuItemMenu }; var funcionalidades = _funcionalidadService.GetFuncionalidades(); var funcionalidads = new List <object>(); foreach (var funcionalidad in funcionalidades) { var fun = new { value = funcionalidad.Id, label = funcionalidad.Nombre }; funcionalidads.Add(fun); } var result = new JsonResult { Data = new { ests, tiposItemMenu, funcionalidads }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; return(result); }
public JsonResult Index(FuncionalidadCriteria criteria) { var pageNumber = criteria.NumeroPagina < 1 ? 1 : criteria.NumeroPagina; var pageSize = _iParametroService.GetValor <int>(CodigosParametros.PARAMETRO_TAMAÑO_PAGINA_GRILLAS); var funcionalidades = _iFuncionalidadService.GetFuncionalidades() .Where(c => string.IsNullOrWhiteSpace(criteria.Nombre) || c.Nombre.ToLower().Contains(criteria.Nombre.ToLower())); var inicio = (pageNumber - 1) * pageSize; var fin = inicio + pageSize > funcionalidades.Count() ? funcionalidades.Count() - inicio : pageSize; var funcionalidadesPagina = funcionalidades.ToList().GetRange(inicio, fin); var parametrosVista = (from x in funcionalidadesPagina let Acciones = getItems(x.Acciones) let EstadoNombre = x.EstadoId == Estado.Activo? Estado.Activo.ToString():Estado.Inactivo.ToString() orderby x.Nombre select new { x.Id, x.Codigo, x.Nombre, x.Controlador, x.Descripcion, x.EstadoId, EstadoNombre, Acciones }); var resultado = new { Data = parametrosVista, TotalRegistros = funcionalidades.Count() }; return(Json(resultado, JsonRequestBehavior.AllowGet)); }