예제 #1
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var moduloSigimAppService = Container.Current.Resolve <IModuloSigimAppService>();
            var moduloAppService      = Container.Current.Resolve <IModuloAppService>();
            var acessoAppService      = Container.Current.Resolve <IAcessoAppService>();

            string paramLogGIRCliente = System.Web.Configuration.WebConfigurationManager.AppSettings["LogGIRCliente"];
            bool   logGIRCliente      = false;

            if (!string.IsNullOrEmpty(paramLogGIRCliente))
            {
                if (paramLogGIRCliente == "1")
                {
                    logGIRCliente = true;
                }
            }

            InformacaoConfiguracaoDTO informacaoConfiguracao = moduloSigimAppService.SetarInformacaoConfiguracao(logGIRCliente, httpContext.Request.UserHostName);

            if (!moduloAppService.PossuiModulo(modulo))
            {
                return(false);
            }

            if (!acessoAppService.ValidaAcessoAoModulo(modulo, informacaoConfiguracao))
            {
                return(false);
            }

            return(base.AuthorizeCore(httpContext));
        }
예제 #2
0
        public InformacaoConfiguracaoDTO SetarInformacaoConfiguracao(bool logGirCliente, string hostName)
        {
            InformacaoConfiguracaoDTO informacaoConfiguracao = new InformacaoConfiguracaoDTO();

            var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

            System.Data.SqlClient.SqlConnectionStringBuilder connectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);

            informacaoConfiguracao.HostName           = hostName;
            informacaoConfiguracao.LogGirCliente      = logGirCliente;
            informacaoConfiguracao.NomeDoBancoDeDados = connectionStringBuilder.InitialCatalog.ToUpper();
            informacaoConfiguracao.Servidor           = connectionStringBuilder.DataSource.ToUpper();

            return(informacaoConfiguracao);
        }
예제 #3
0
        public bool ValidaAcessoGirCliente(string nomeModulo, int usuarioId, InformacaoConfiguracaoDTO informacaoConfiguracao)
        {
            bool validou = true;

            if (!informacaoConfiguracao.LogGirCliente)
            {
                return(validou);
            }
            if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
            {
                return(validou);
            }

            ModuloDTO modulo = moduloAppService.ObterPeloNome(nomeModulo.ToUpper());

            UsuarioDTO usuario = usuarioAppService.ObterUsuarioPorId(usuarioId);

            if (string.IsNullOrEmpty(modulo.ChaveAcesso))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.ChaveAcessoNaoInformada, TypeMessage.Error);
                return(false);
            }

            ClienteAcessoChaveAcesso infoAcesso = ObterInfoAcesso(modulo.ChaveAcesso);

            int numeroUsuarioSistema = usuarioFuncionalidadeAppService.ObterQuantidadeDeUsuariosNoModulo(modulo.Id.Value);

            clienteAcessoLogWS.clienteAcessoLogWS clienteAcessoLogWS = new clienteAcessoLogWS.clienteAcessoLogWS();
            clienteAcessoLogWS.Timeout = 10000;
            validou = clienteAcessoLogWS.AtualizaAcessoCliente(infoAcesso.ClienteFornecedor.Id.Value,
                                                               infoAcesso.ClienteFornecedor.Nome,
                                                               informacaoConfiguracao.Servidor,
                                                               informacaoConfiguracao.HostName,
                                                               usuario.Login,
                                                               modulo.Nome,
                                                               numeroUsuarioSistema,
                                                               informacaoConfiguracao.NomeDoBancoDeDados,
                                                               modulo.Versao);
            if (!validou)
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.ErroAcessoLogGirCliente, TypeMessage.Error);
                return(false);
            }

            return(validou);
        }
예제 #4
0
        public ActionResult Index()
        {
            InformacaoConfiguracaoDTO informacaoConfiguracao = moduloSigimAppService.SetarInformacaoConfiguracao(this.LogGIRCliente, Request.UserHostName);

            if (!moduloAppService.PossuiModulo(GIR.Sigim.Application.Constantes.Modulo.OrcamentoWeb))
            {
                return(RedirectToAction("Index", "Painel", new { Area = "" }));
            }

            if (!acessoAppService.ValidaAcessoAoModulo(GIR.Sigim.Application.Constantes.Modulo.OrcamentoWeb, informacaoConfiguracao))
            {
                return(RedirectToAction("Index", "Painel", new { Area = "" }));
            }

            if (!acessoAppService.ValidaAcessoGirCliente(GIR.Sigim.Application.Constantes.Modulo.OrcamentoWeb, Usuario.Id.Value, informacaoConfiguracao))
            {
                return(RedirectToAction("Index", "Painel", new { Area = "" }));
            }

            return(View());
        }
예제 #5
0
        public bool ValidaAcessoAoModulo(string nomeModulo, InformacaoConfiguracaoDTO informacaoConfiguracao)
        {
            ModuloDTO modulo = moduloAppService.ObterPeloNome(nomeModulo.ToUpper());

            if (!moduloSigimAppService.ValidaVersaoSigim(modulo.Versao))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.VersaoInvalida, TypeMessage.Error);
                return(false);
            }

            if (string.IsNullOrEmpty(modulo.ChaveAcesso))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.ChaveAcessoNaoInformada, TypeMessage.Error);
                return(false);
            }

            ClienteAcessoChaveAcesso infoChaveAcesso = ObterInfoAcesso(modulo.ChaveAcesso);

            if (!infoChaveAcesso.DataExpiracao.HasValue)
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.DataExpiracaoNaoInformada, TypeMessage.Error);
                return(false);
            }

            if ((infoChaveAcesso.DataExpiracao.HasValue) && (infoChaveAcesso.DataExpiracao.Value.Date < DateTime.Now.Date))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.DataExpirada, TypeMessage.Error);
                return(false);
            }

            //infoAcesso.ClienteFornecedor.Id = 4215; //cliente com bloqueio de modulo para testar
            if (EhSistemaBloqueado(nomeModulo, infoChaveAcesso.ClienteFornecedor.Id.Value, informacaoConfiguracao.LogGirCliente))
            {
                TratarBloqueioNoSistemaSigim(infoChaveAcesso.ClienteFornecedor.Id.Value, informacaoConfiguracao.LogGirCliente);
                messageQueue.Add(Resource.Sigim.ErrorMessages.SistemaBloqueado, TypeMessage.Error);
                return(false);
            }

            return(true);
        }