예제 #1
0
        private void SetMenuVisibilityByCurrentRole()
        {
            var administracion = false;
            var publicaciones  = false;
            var estadistico    = false;

            //Obtengo todas las funcionalidades asignadas al rol del usuario logueado
            foreach (var functionality in SessionManager.CurrentRol.Funcionalidades)
            {
                //Obtengo un objeto 'Funcionalidad' a partir de la descripción del rol (como aparece en la base)
                switch (Funcionalidad.GetByName(functionality.Descripcion))
                {
                case Funcionalidades.ABM_Rol:
                    administracionDeRolesToolStripMenuItem.Visible = true;
                    administracion = true;
                    break;

                case Funcionalidades.ABM_Cliente:
                    administracionDeClientesToolStripMenuItem.Visible = true;
                    administracion = true;
                    break;

                case Funcionalidades.ABM_Empresa:
                    administracionDeEmpresasToolStripMenuItem.Visible = true;
                    administracion = true;
                    break;

                case Funcionalidades.ABM_Usuario:
                    administracionDeUsuariosToolStripMenuItem.Visible = true;
                    administracion = true;
                    break;

                case Funcionalidades.ABM_Visibilidad:
                    administracionDeVisibilidadesToolStripMenuItem.Visible = true;
                    administracion = true;
                    break;

                case Funcionalidades.Generar_Publicacion:
                    generarPublicacionesToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Editar_Publicacion:
                    editarMisPublicacionesToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Gestion_Preguntas:
                    responderPreguntasToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Comprar_Ofertar:
                    comprarOfertarToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Historial_Cliente:
                    historialClienteToolStripMenuItem.Visible = true;
                    estadistico = true;
                    break;

                case Funcionalidades.Calificar_Vendedor:
                    calificarVendedorToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Facturar_Publicaciones:
                    facturarPublicacionesToolStripMenuItem.Visible = true;
                    publicaciones = true;
                    break;

                case Funcionalidades.Listado_Estadistico:
                    listadoEstadisticoToolStripMenuItem.Visible = true;
                    estadistico = true;
                    break;
                }
            }

            //Si no posee ninguna funcionalidad de administración borro el menu item
            if (!administracion)
            {
                MsHome.Items.Remove(administracionToolStripMenuItem);
            }

            //Si no posee ninguna funcionalidad relacionadas con publicaciones borro el menu item
            if (!publicaciones)
            {
                MsHome.Items.Remove(publicacionesToolStripMenuItem);
            }

            //Si no posee ninguna funcionalidad de estadistica borro el menu item
            if (!estadistico)
            {
                MsHome.Items.Remove(estadisticasToolStripMenuItem);
            }
        }