Exemplo n.º 1
0
        public static string Absoluta(string relativa, Aplicacion aplicacion)
        {
            IPushNewsUnitOfWork uow = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>();
            var servicios           = new ServiciosFactoria(uow, aplicacion);
            IParametrosServicio srv = servicios.ParametrosServicio();
            Parametro           paramRaizDocumentos = srv.GetByName(nombreParametro: "RaizDocumentos");
            string rutaRaiz     = paramRaizDocumentos.Valor;
            string rutaAbsoluta = System.IO.Path.Combine(rutaRaiz, relativa);

            return(rutaAbsoluta);
        }
Exemplo n.º 2
0
        public static IEnumerable <ElementoMenu> GenerarMenu(long usuarioID, Aplicacion aplicacion)
        {
            IPushNewsUnitOfWork uow      = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>();
            var servicios                = new ServiciosFactoria(uow, aplicacion);
            IAplicacionesServicio appSrv = servicios.AplicacionesServicio();
            Aplicacion            app    = appSrv.GetSingle(a => a.AplicacionID == aplicacion.AplicacionID);
            IUsuariosServicio     srv    = servicios.UsuariosServicio();

            // Flags para ocultar categorías, teléfonos y localizaciones en el menú.
            // Los tres elementos se mostrarán siempre si el usuario es administrador, independientemente de
            // si tiene o no tiene categorías asignadas.
            // Si el usuario no es administrador, los tres elementos se mostrarán si no tiene ninguna
            // categoría asignada en la aplicación acutal. Si tiene al menos una categoría asignada en la
            // aplicación acutal, los tres elementos se ocultan.
            IUsuariosServicio usuariosServicio = servicios.UsuariosServicio();
            Usuario           usuario          = usuariosServicio.GetSingle(u => u.UsuarioID == usuarioID);
            bool usuarioEsAdmin        = usuario.Rol.Nombre == "Administrador";
            bool ocultarCategorias     = false;
            bool ocultarTelefonos      = false;
            bool ocultarLocalizaciones = false;

            IEnumerable <Dominio.Enums.AplicacionCaracteristica> caracteristicas = app.Caracteristicas
                                                                                   .Where(c => c.Activo)
                                                                                   .Select(c => (Dominio.Enums.AplicacionCaracteristica)c.AplicacionCaracteristicaID);
            List <ElementoMenu> menuCompleto = Elementos(caracteristicas, ocultarCategorias, ocultarTelefonos, ocultarLocalizaciones);
            var menuFiltrado = new List <ElementoMenu>();

            if (usuarioEsAdmin)
            {
                menuFiltrado = menuCompleto;
            }
            else
            {
                foreach (var eActual in menuCompleto)
                {
                    if (eActual.Roles.Any(r => r.Length == 0 || usuario.Rol.Nombre == r))
                    {
                        if (eActual.TieneHijos)
                        {
                            QuitarHijos(eActual, new[] { "Editor" });
                        }
                        menuFiltrado.Add(eActual);
                    }
                }
            }


            return(menuFiltrado);
        }