/// <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); }
/// <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); }