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);
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    public static QuickEmisorModel GetEmisorSeleccionado(HttpSessionStateBase objSession, string userID, FacturaPoliContext db = null)
    {
        if (db == null)
        {
            db = ParseExtensions.GetDatabaseContext(userID);
        }

        return(ModuloHelper.GetEmisorSeleccionado(objSession, userID, db));
    }
Beispiel #5
0
        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);
        }
    }
Beispiel #7
0
        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));
        }
Beispiel #8
0
 public void ComputeAToThePowerBModuloC_ReturnsCorrectResult(long a, long b, long c, long expectedResult)
 {
     ModuloHelper.ComputeAToThePowerBModuloC(a, b, c).Should().Be(expectedResult);
 }
Beispiel #9
0
 public static ClientesContablesModel GetClienteContableSeleccionado(HttpSessionStateBase objSession, string UserID, FacturaPoliContext db = null)
 {
     return(ModuloHelper.GetClienteContableSeleccionado(objSession, UserID, db));
 }