コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: RolController.cs プロジェクト: jpordonez/test
        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);
        }
コード例 #3
0
ファイル: RolController.cs プロジェクト: 562127386/cpp_webapi
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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));
        }