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