public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.HttpContext.User.Identity.IsAuthenticated == false) { filterContext.Result = RetornarSeleccionEmisor(); return; } string VistaAccedida = filterContext.RouteData.Values["action"].ToString(); string UserID = filterContext.HttpContext.User.Identity.GetUserId(); var Session = filterContext.HttpContext.Session; FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); //rescata usuario UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } //rescata emisor seleccionado QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { filterContext.Result = RetornarSeleccionEmisor(); return; } //ve si el usuario tiene acceso a la vista utilizando este emisor IQueryable <ModulosHabilitados> ModulosHabilitados = db.DBModulosHabilitados.Where(r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID); List <string> lstFuncionesUsuario = ModulosHabilitados.Select(w => w.Funcion.NombreFuncion).ToList(); if (lstFuncionesUsuario.Contains(VistaAccedida)) { List <FuncionesModel> lstFuncionesContabilidad = ModulosHabilitados.Where(r => r.Funcion.NombreFuncion == VistaAccedida).Select(r => r.Funcion).ToList(); //Si es una funcion de contabilidad, revisar si tiene una ClienteEmisorSeleccionado if (lstFuncionesContabilidad.Where(r => r.ModuloSistema != null).Any(r => r.ModuloSistema.ModuloSistemaModelID == ParseExtensions.KeyModuloSistemaContable)) { ClientesContablesModel clienteSeleccionado = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); if (clienteSeleccionado == null) { filterContext.Result = RetornarSeleccionClienteContable(); return; } } return; } else { filterContext.Result = RetornarSeleccionEmisor(); return; } }
public static bool FuncionAnyContabilidad(HttpContext context) { //List<string> lstFuncionesUsuario; string UserID = context.User.Identity.GetUserId(); HttpSessionStateBase Session = new HttpSessionStateWrapper(context.Session); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { return(false); } QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { return(false); } bool hasFuncionesContablesInModulosHabilitados = db.DBModulosHabilitados .Where( r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID ).Any (r => r.Funcion.ModuloSistema.ModuloSistemaModelID == ParseExtensions.KeyModuloSistemaContable); return(hasFuncionesContablesInModulosHabilitados); }
public static QuickEmisorModel GetEmisorSeleccionado(HttpSessionStateBase objSession, string userID, FacturaPoliContext db = null) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } bool Esta_En_Certificacion = ParseExtensions.ItsUserOnCertificationEnvironment(userID); //CERTIFICACION int IDEmisor = -1; if (Esta_En_Certificacion) { if (objSession["EmisorSeleccionado_CERT"] == null) { return(null); } IDEmisor = (int)objSession["EmisorSeleccionado_CERT"]; } //PRODUCCION else { if (objSession["EmisorSeleccionado"] == null) { return(null); } IDEmisor = (int)objSession["EmisorSeleccionado"]; } QuickEmisorModel returnValue = null; ModuloHelper.GetEmisorHabilitado(userID, IDEmisor, out returnValue, db); return(returnValue); }
public static QuickEmisorModel GetEmisorSeleccionado(HttpSessionStateBase objSession, string userID, FacturaPoliContext db = null) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } return(ModuloHelper.GetEmisorSeleccionado(objSession, userID, db)); }
public List <Modulos> ListadoModulosUsuario(string Id, string moduloActivo) { Connection conectar = new Connection(); SqlDataReader dtReader = null; List <Modulos> resultado = new List <Modulos>(); string Query = ""; Query = "SELECT DISTINCT a.mdl_id,a.mdl_titulo,a.mdl_enlace "; Query += "FROM [USUARIO].[dbo].[t_modulo] a "; Query += "LEFT JOIN [USUARIO].[dbo].[t_permiso] b ON b.prm_mdlid = a.mdl_id "; Query += "WHERE b.prm_sysid = 18 and b.prm_usr = @Id and b.prm_stt = 1 "; try { SqlCommand command = new SqlCommand(Query, conectar.Conectar()); command.Parameters.AddWithValue("@Id", Id); dtReader = command.ExecuteReader(); while (dtReader.Read()) { Modulos modulo = new Modulos(); modulo.Id = dtReader.GetInt32(0); modulo.Titulo = dtReader.GetString(1); string[] AcctionController = ModuloHelper.ObtenerActionAndController(dtReader.GetString(2)); modulo.Controller = AcctionController[0]; modulo.Action = AcctionController[1]; if (dtReader.GetString(1).Equals(moduloActivo)) { modulo.Activo = "active"; } resultado.Add(modulo); } }catch (SqlException ex) { throw new ArgumentException($"Error al Consultar Modulos Aplicacion Detalle : {ex.Message}"); }finally { dtReader.Close(); conectar.Desconectar(); } return(resultado); }
public static bool FuncionRequerida(HttpContext context, string ComponenteRequerido) { List <string> lstFuncionesUsuario; //if (context.Session["listaFuncionesAccesibles"] == null) //{ string UserID = context.User.Identity.GetUserId(); HttpSessionStateBase Session = new HttpSessionStateWrapper(context.Session); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); //rescata usuario UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { return(false); } //rescata emisor seleccionado QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { return(false); } lstFuncionesUsuario = db.DBModulosHabilitados .Where(r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID) .Select(w => w.Funcion.NombreFuncion).ToList(); // context.Session["listaFuncionesAccesibles"] = lstFuncionesUsuario; // } //lstFuncionesUsuario = (List<string>)context.Session["listaFuncionesAccesibles"]; if (lstFuncionesUsuario != null && lstFuncionesUsuario.Contains(ComponenteRequerido, StringComparer.OrdinalIgnoreCase)) { return(true); } else { return(false); } }
public JsonResult obtenerEmisoresAdminFunciones(int dataContext, int SelectedUser) { StringBuilder optionSelect = new StringBuilder(); if (SelectedUser <= 0) { return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet)); } FacturaPoliContext db = null; if (dataContext == 1) //Certificacion { db = new FacturaPoliContext(); } else if (dataContext == 2) //Produccion { db = new FacturaPoliContext(true); } else //No determinado, no nos interesa { return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet)); } UsuarioModel objUser = db.DBUsuarios.SingleOrDefault(r => r.UsuarioModelID == SelectedUser); if (objUser == null) { return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet)); } //Obtiene todos los emisores con los que el usuario especifico puede operar List <QuickEmisorModel> objEmisoresEnabled = new List <QuickEmisorModel>(); bool HayUsuariosConFuncionalidades = ModuloHelper.GetEmisoresHabilitados(objUser.IdentityID, out objEmisoresEnabled, db); //Obtiene todos los emisores del sistema List <QuickEmisorModel> objEmisoresAll = db.Emisores.ToList(); //Utiliza ambos para obtener la diferencia entre ambas listas, y determinar los emisores con los que NO puede operar List <QuickEmisorModel> objEmisoresNoFuncion = objEmisoresAll.Except(objEmisoresEnabled).ToList(); optionSelect.Append("<option value='0'>Empresa</option>"); //test branch 2 if (objEmisoresEnabled.Count > 0) { optionSelect.Append("<optgroup label='Con Acceso'>"); foreach (QuickEmisorModel EmisorEnabled in objEmisoresEnabled) { optionSelect.Append("<option value=\"" + EmisorEnabled.QuickEmisorModelID + "\">" + EmisorEnabled.RazonSocial + " (" + EmisorEnabled.RUTEmpresa + ")</option>"); } optionSelect.Append("</optgroup>"); } if (objEmisoresNoFuncion.Count > 0) { optionSelect.Append("<optgroup label='Sin Acceso'>"); foreach (QuickEmisorModel EmisorDisabled in objEmisoresNoFuncion) { optionSelect.Append("<option value=\"" + EmisorDisabled.QuickEmisorModelID + "\">" + EmisorDisabled.RazonSocial + " (" + EmisorDisabled.RUTEmpresa + ")</option>"); } optionSelect.Append("</optgroup>"); } return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet)); }
public void ComputeAToThePowerBModuloC_ReturnsCorrectResult(long a, long b, long c, long expectedResult) { ModuloHelper.ComputeAToThePowerBModuloC(a, b, c).Should().Be(expectedResult); }
public static ClientesContablesModel GetClienteContableSeleccionado(HttpSessionStateBase objSession, string UserID, FacturaPoliContext db = null) { return(ModuloHelper.GetClienteContableSeleccionado(objSession, UserID, db)); }