/// <summary>
        /// Método para verificar el acceso a las distintas opciones
        /// </summary>
        /// <returns>Retorna una lista</returns>
        public override List <String> Ejecutar()
        {
            List <String> lista = new List <String>();

            try
            {
                Comando <DominioTangerine.Entidad> theComando = FabricaComandos.obtenerComandoObtenerRolUsuarioPorNombre(_nombreRol);
                LogicaTangerine.Comandos.M2.ComandosDAORol.ComandoObtenerRolUsuarioPorNombre comando
                    = (LogicaTangerine.Comandos.M2.ComandosDAORol.ComandoObtenerRolUsuarioPorNombre)theComando;
                DominioTangerine.Entidad            theRol = comando.Ejecutar();
                DominioTangerine.Entidades.M2.RolM2 rol    = (DominioTangerine.Entidades.M2.RolM2)theRol;

                foreach (DominioTangerine.Entidades.M2.MenuM2 m in rol.menu)
                {
                    foreach (DominioTangerine.Entidades.M2.OpcionM2 o in m.opciones)
                    {
                        lista.Add(o.nombre);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw new ExceptionM2Tangerine("DS-202", "Metodo no implementado", ex);
            }
            return(lista);
        }
示例#2
0
        /// <summary>
        /// Método para verificar las paginas a las que puede acceder un rol
        /// </summary>
        /// <returns>Retorna un valor booleando indicando si un rol puede acceder a una pagina especifica</returns>
        public override bool Ejecutar()
        {
            bool resultado = false;

            string[] paginaSeparada = _paginaAVerificar.Split('/');
            int      tamanoPagina   = paginaSeparada.Length;

            try
            {
                Comando <DominioTangerine.Entidad> theComando = FabricaComandos.obtenerComandoObtenerRolUsuarioPorNombre(_nombreRol);
                LogicaTangerine.Comandos.M2.ComandosDAORol.ComandoObtenerRolUsuarioPorNombre comando
                    = (LogicaTangerine.Comandos.M2.ComandosDAORol.ComandoObtenerRolUsuarioPorNombre)theComando;
                DominioTangerine.Entidad            theRol = comando.Ejecutar();
                DominioTangerine.Entidades.M2.RolM2 rol    = (DominioTangerine.Entidades.M2.RolM2)theRol;

                foreach (DominioTangerine.Entidades.M2.MenuM2 m in rol.menu)
                {
                    foreach (DominioTangerine.Entidades.M2.OpcionM2 o in m.opciones)
                    {
                        string[] opcionSeparada = o.url.Split('/');
                        int      tamanoOpcion   = opcionSeparada.Length;

                        if (tamanoOpcion >= 2)
                        {
                            if (opcionSeparada[tamanoOpcion - 1].Equals(paginaSeparada[tamanoPagina - 1]) &&
                                opcionSeparada[tamanoOpcion - 2].Equals(paginaSeparada[tamanoPagina - 2]))
                            {
                                resultado = true;
                                return(resultado);
                            }
                        }
                    }
                }
            }
            catch (IndexOutOfRangeException ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw new ExceptionM2Tangerine("DS-202", "Error, indice fuera de rango", ex);
            }
            catch (ExceptionTGConBD ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw new ExceptionM2Tangerine("DS-202", "Error con la base de datos", ex);
            }
            catch (Exception ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw new ExceptionM2Tangerine("DS-202", "Metodo no implementado", ex);
            }
            return(resultado);
        }