예제 #1
0
        /// <summary>
        /// END-POINT: Desde CrudBase.ts
        /// llama al metodo del controlador CargarLista y en función de la claseElemento obtiene que elementos ha de cargar
        /// </summary>
        /// <param name="claseElemento">Indica la lista de elementos que se quiere cargar</param>
        /// <returns></returns>
        public JsonResult epCargarLista(string claseElemento, string negocio, string filtro)
        {
            var     r = new Resultado();
            dynamic elementos;

            try
            {
                ApiController.CumplimentarDatosDeUsuarioDeConexion(GestorDeElementos.Contexto, GestorDeElementos.Mapeador, HttpContext);
                List <ClausulaDeFiltrado> filtros = filtro == null ? new List <ClausulaDeFiltrado>() : JsonConvert.DeserializeObject <List <ClausulaDeFiltrado> >(filtro);
                elementos = CargarLista(claseElemento, NegociosDeSe.ToEnumerado(negocio, nullValido: true), filtros);
                r.Datos   = elementos;
                r.Estado  = enumEstadoPeticion.Ok;
            }
            catch (Exception e)
            {
                ApiController.PrepararError(e, r, "No se ha podido leer los datos.");
            }

            return(new JsonResult(r));
        }
        //END-POINT: Desde CrudMantenimiento.ts
        /// <summary>
        /// Devuelve el modo de acceso a los datos del negocio del usuario conectado
        /// </summary>
        /// <param name="negocio">negocio del que se quiere saber el modo de acceso del usuario conectado</param>
        /// <returns>modo de acceso a los datos del negocio</returns>
        public JsonResult epLeerModoDeAccesoAlNegocio(string negocio)
        {
            var r = new Resultado();

            try
            {
                ApiController.CumplimentarDatosDeUsuarioDeConexion(Contexto, Mapeador, HttpContext);
                var modoDeAcceso = LeerModoAccesoAlNegocio(DatosDeConexion.IdUsuario, NegociosDeSe.ToEnumerado(negocio));
                r.ModoDeAcceso = modoDeAcceso.Render();
                r.consola      = $"El usuario {DatosDeConexion.Login} tiene permisos de {modoDeAcceso}";
                r.Estado       = enumEstadoPeticion.Ok;
            }
            catch (Exception e)
            {
                ApiController.PrepararError(e, r, $"Error al obtener los permisos sobre el negocio {negocio} para el usuario {DatosDeConexion.Login}.");
            }
            return(new JsonResult(r));
        }
예제 #3
0
        public JsonResult epLeerModoDeAccesoAlElemento(string negocio, int id)
        {
            var r = new Resultado();

            try
            {
                var modoDeAcceso = enumModoDeAccesoDeDatos.SinPermiso;
                ApiController.CumplimentarDatosDeUsuarioDeConexion(GestorDeElementos.Contexto, GestorDeElementos.Mapeador, HttpContext);
                var opcionesDeMapeo = new Dictionary <string, object>();
                opcionesDeMapeo.Add(ltrParametrosDto.DescargarGestionDocumental, false);

                var elemento = GestorDeElementos.LeerElementoPorId(id, opcionesDeMapeo);
                modoDeAcceso = GestorDeElementos.LeerModoDeAccesoAlElemento(DatosDeConexion.IdUsuario, NegociosDeSe.ToEnumerado(negocio), id);
                if (modoDeAcceso == enumModoDeAccesoDeDatos.SinPermiso)
                {
                    GestorDeErrores.Emitir("El usuario conectado no tiene acceso al elemento solicitado");
                }

                r.Datos        = elemento;
                r.ModoDeAcceso = modoDeAcceso.Render();
                r.consola      = $"El usuario {DatosDeConexion.Login} tiene permisos de {modoDeAcceso} sobre el elemento seleccionado";
                r.Estado       = enumEstadoPeticion.Ok;
            }
            catch (Exception e)
            {
                ApiController.PrepararError(e, r, $"Error al obtener los permisos sobre el elemento {id} del {negocio} para el usuario {DatosDeConexion.Login}.");
            }

            return(new JsonResult(r));
        }