public static void Deslogar(string login = null, bool isDeslogarForcado = false) { if (login == null && HttpContext.Current.User == null && !(HttpContext.Current.User is EtramitePrincipal)) { return; } AutenticacaoExecutor executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Interno; //Executor Interno UsuarioBus busUsuario = new UsuarioBus(HistoricoAplicacao.INTERNO); if (HttpContext.Current.User != null && (HttpContext.Current.User is EtramitePrincipal)) { EtramitePrincipal user = (HttpContext.Current.User as EtramitePrincipal); login = user.EtramiteIdentity.Login; executor.Tid = user.EtramiteIdentity.FuncionarioTid; executor.UsuarioId = user.EtramiteIdentity.UsuarioId; } else { Funcionario funcionario = _busFunc.ObterFuncionarioExecutor(login); executor.Tid = funcionario.Tid; executor.UsuarioId = funcionario.Usuario.Id; } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); busUsuario.Deslogar(login, executor, isDeslogarForcado, bancoDeDados); _busFunc.Deslogar(login, bancoDeDados); bancoDeDados.Commit(); } }
internal Int32 Salvar(Usuario usuario, String senhaHash, AutenticacaoExecutor executor, BancoDeDados banco = null) { if (banco == null) { GerenciadorTransacao.GerarNovoID(); } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando("insert into {0}tab_usuario (id, login, senha, senha_data, tid) values ({0}seq_usuario.nextval, :login, :senha, sysdate, :tid) returning id into :id", EsquemaBanco); comando.AdicionarParametroEntrada("login", DbType.String, 30, usuario.Login); comando.AdicionarParametroEntrada("senha", DbType.String, 150, senhaHash); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); usuario.Id = Convert.ToInt32(comando.ObterValorParametro("id")); _historico.Gerar(usuario.Login, Aplicacao, HistoricoAcao.CRIAR, executor, bancoDeDados); bancoDeDados.Commit(); } return(usuario.Id); }
internal void AlterarSenha(Usuario usuario, string senhaHash, AutenticacaoExecutor executor, BancoDeDados banco = null) { if (banco == null) { GerenciadorTransacao.GerarNovoID(); } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update {0}tab_usuario u set senha = :senha, senha_data = sysdate, tid = :tid where id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", usuario.Id, DbType.Int32); //Não se alterar Login comando.AdicionarParametroEntrada("senha", DbType.String, 150, senhaHash); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); _historico.Gerar(usuario.Login, Aplicacao, HistoricoAcao.ATUALIZAR, executor, bancoDeDados); bancoDeDados.Commit(); } }
public void Salvar(Administrador obj, String senha, String ConfirmarSenha, bool AlterarSenha) { BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(); try { if (_validar.Salvar(obj, senha, ConfirmarSenha, AlterarSenha)) { #region Mensagem Mensagem msgSucesso = Mensagem.Administrador.Salvar; if (obj.Id > 0) { msgSucesso = Mensagem.Administrador.Editar; } #endregion bancoDeDados = BancoDeDados.ObterInstancia(); bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); #region Usuario string hashSenha = GerenciarAutenticacao.Criptografar(obj.Usuario.Login, senha); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (obj.Usuario.Id <= 0) { _busUsuario.Salvar(obj.Usuario, hashSenha, executor, bancoDeDados); } else { if (!String.IsNullOrEmpty(senha)) { _busUsuario.AlterarSenha(obj.Usuario, hashSenha, executor, bancoDeDados); obj.Situacao = 3; //Alterar senha } } #endregion #region Funcionário _da.Salvar(obj, bancoDeDados); #endregion bancoDeDados.Commit(); Validacao.Add(msgSucesso); } } catch (Exception exc) { bancoDeDados.Rollback(); Validacao.AddErro(exc); } finally { bancoDeDados.Dispose(); } }
public Int32 Salvar(Usuario usuario, string senhaHash, AutenticacaoExecutor executor, BancoDeDados banco = null) { int ret = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bool flagAuditavel = false; try { if (usuario == null) { throw new ApplicationException("Objeto usuário é nulo"); } if (String.IsNullOrEmpty(senhaHash)) { throw new ApplicationException("senha de usuário é nula"); } if (String.IsNullOrEmpty(usuario.Login)) { throw new ApplicationException("login de usuário é nulo"); } if (executor.UsuarioId <= 0) { throw new ApplicationException("Executor Id de usuário é zero"); } if (executor.Tipo <= 0) { throw new ApplicationException("Executor Tipo é zero"); } if (String.IsNullOrEmpty(executor.Tid)) { throw new ApplicationException("Executor Tid é nulo"); } if (!UsuarioValidacao.FormatoLogin(usuario.Login)) { throw new ApplicationException("Formato do login é inválido"); } ret = _da.Salvar(usuario, senhaHash, executor, bancoDeDados); flagAuditavel = true; } finally { Auditoria.Evento(EventoAuditavel.Criar, usuario, flagAuditavel); } } return(ret); }
public bool AlterarSituacao(int id, int situacao, string motivo) { if (_validar.AlterarSituacao(situacao, motivo)) { AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); _da.AlterarSituacao(id, situacao, motivo); Validacao.Add(Mensagem.Funcionario.AlterarSituacao); return(true); } return(false); }
public bool AlterarSenha(String login, String senha, String novaSenha, String confirmarNovaSenha, BancoDeDados banco = null) { if (!_validar.AlterarSenha(login, senha, novaSenha, confirmarNovaSenha)) { return(false); } Usuario usuario = _busUsuario.ValidarUsuario(login, GerenciarAutenticacao.Criptografar(login, senha)); if (usuario == null || usuario.Id == 0) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } string senhaNovaHash = GerenciarAutenticacao.Criptografar(login, novaSenha); if (_busUsuario.VerificarHistoricoSenha(usuario.Id, senhaNovaHash, _configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))) { Validacao.Add(Mensagem.Login.HistoricoSenha(_configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))); return(false); } //Caso alterar a senha quando logado Funcionario funcionario = _da.ObterFuncionarioExecutor(login); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (executor == null) { executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Interno; executor.UsuarioId = funcionario.Usuario.Id; executor.Tid = funcionario.Tid; } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _busUsuario.AlterarSenha(usuario, senhaNovaHash, executor, bancoDeDados); _da.AlterarSenha(usuario.Id, funcionario, banco); bancoDeDados.Commit(); } Validacao.Add(Mensagem.Login.SenhaAlterada); return(true); }
public void Deslogar(string login, AutenticacaoExecutor executor, bool deslogarForcado = false, BancoDeDados banco = null) { bool flagAuditavel = false; Usuario usuario = new Usuario(); usuario.Login = login; try { _da.Deslogar(login, executor, deslogarForcado, banco); flagAuditavel = true; } finally { Auditoria.Evento(EventoAuditavel.Logout, usuario, flagAuditavel); } }
internal static AutenticacaoExecutor ObterAutenticacaoExecutor() { if (HttpContext.Current.User == null || !(HttpContext.Current.User is EtramitePrincipal)) { return(null); } AutenticacaoExecutor executor = new AutenticacaoExecutor(); EtramitePrincipal user = (HttpContext.Current.User as EtramitePrincipal); executor.Tipo = (int)eExecutorTipo.Interno; executor.UsuarioId = user.EtramiteIdentity.UsuarioId; executor.Tid = user.EtramiteIdentity.FuncionarioTid; return(executor); }
public void AlterarSenha(Usuario usuario, String senhaHash, AutenticacaoExecutor executor, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bool flagAuditavel = false; try { _da.AlterarSenha(usuario, senhaHash, executor, bancoDeDados); flagAuditavel = true; } finally { Auditoria.Evento(EventoAuditavel.AlterarSenha, usuario, flagAuditavel); } } }
public void Autenticar(Usuario usuario, bool ehUsuarioValido, int executorTipo, BancoDeDados banco = null) { try { if (ehUsuarioValido) { AutenticacaoExecutor executor = new AutenticacaoExecutor() { UsuarioId = usuario.Id, Tipo = executorTipo, Tid = usuario.TID }; _da.Autenticar(usuario.Login, usuario.Id, usuario.Ip, executor, banco); } } finally { Auditoria.Evento((ehUsuarioValido) ? EventoAuditavel.Logon : EventoAuditavel.LogonFalha, usuario, ehUsuarioValido); } }
internal void Autenticar(string login, int id, string ipLogon, AutenticacaoExecutor executor, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando("update {0}tab_usuario t set t.logon_data = sysdate, t.logon_ip = :logon_ip where t.id = :id", EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("logon_ip", DbType.String, 40, ipLogon); bancoDeDados.ExecutarNonQuery(comando); executor.UsuarioId = id; _historico.Gerar(login, Aplicacao, HistoricoAcao.LOGON, executor, bancoDeDados); bancoDeDados.Commit(); } }
public void Gerar(string login, int aplicacao, int acao, AutenticacaoExecutor executor, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"begin {0}usuario.historico(:login, :acao, :executorId, :executorTipo, :executorTid, :p_aplicacao); end;", EsquemaBanco); comando.AdicionarParametroEntrada("login", DbType.String, 30, login); comando.AdicionarParametroEntrada("acao", acao, DbType.Int32); comando.AdicionarParametroEntrada("executorId", executor.UsuarioId, DbType.Int32); comando.AdicionarParametroEntrada("executorTipo", executor.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("executorTid", DbType.String, 36, executor.Tid); comando.AdicionarParametroEntrada("p_aplicacao", aplicacao, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); bancoDeDados.Commit(); } }
public bool Reativar(CredenciadoPessoa credenciado, String senha, String confirmarSenha) { try { if (_validar.ValidarReativar(credenciado.Chave, senha, confirmarSenha)) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); string hashSenha = GerenciarAutenticacao.Criptografar(credenciado.Usuario.Login, senha); AutenticacaoExecutor executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Credenciado; executor.Tid = credenciado.Tid; executor.UsuarioId = credenciado.Usuario.Id; _busUsuario.AlterarSenha(credenciado.Usuario, hashSenha, executor, bancoDeDados); Executor executorHistorico = new Executor(); executorHistorico.Id = credenciado.Id; executorHistorico.Tid = credenciado.Tid; executorHistorico.Nome = credenciado.Nome; executorHistorico.Login = credenciado.Usuario.Login; executorHistorico.Tipo = eExecutorTipo.Credenciado; _da.Ativar(credenciado, bancoDeDados, executorHistorico); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
internal void Deslogar(string login, AutenticacaoExecutor executor, bool deslogarForcado = false, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update {0}tab_usuario t set t.logout_data = ultima_acao, t.logon_anterior_data = t.logon_data, t.logon_anterior_ip = t.logon_ip where t.login = :login returning id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("login", DbType.String, 30, login); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); int id = Convert.ToInt32(comando.ObterValorParametro("id")); executor.UsuarioId = id; int acao = (deslogarForcado) ? HistoricoAcao.LOGOUT_FOCADO : HistoricoAcao.LOGOUT; _historico.Gerar(login, Aplicacao, acao, executor, bancoDeDados); bancoDeDados.Commit(); } }
public bool Salvar(Funcionario funcionario, String senha, String ConfirmarSenha) { try { if (_validar.Salvar(funcionario, senha, ConfirmarSenha)) { #region Mensagem Mensagem msgSucesso = Mensagem.Funcionario.Salvar; if (funcionario.Id > 0) { msgSucesso = Mensagem.Funcionario.Editar; } if (funcionario.Id > 0 && funcionario.Tipo != 3) { throw new Exception("Tipo de funcionário inválido"); } #endregion #region Arquivos/Diretorio ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome)) { if (funcionario.Arquivo.Id == 0) { funcionario.Arquivo = _busArquivo.Copiar(funcionario.Arquivo); } } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Usuario string hashSenha = GerenciarAutenticacao.Criptografar(funcionario.Usuario.Login, senha); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (funcionario.Usuario.Id <= 0) { _busUsuario.Salvar(funcionario.Usuario, hashSenha, executor, bancoDeDados); } else { if (!String.IsNullOrEmpty(senha)) { _busUsuario.AlterarSenha(funcionario.Usuario, hashSenha, executor, bancoDeDados); funcionario.Situacao = 5; //Alterar senha } } #endregion #region Arquivos/Banco ArquivoDa arquivoDa = new ArquivoDa(); if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome)) { if (funcionario.Arquivo.Id == 0) { arquivoDa.Salvar(funcionario.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } } #endregion _da.Salvar(funcionario, bancoDeDados); bancoDeDados.Commit(); } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public bool Ativar(CredenciadoPessoa credenciado, String senha, String confirmarSenha) { try { if (_validar.ValidarAtivar(credenciado, senha, confirmarSenha)) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { Executor executorHistorico = new Executor(); executorHistorico.Id = credenciado.Id; executorHistorico.Tid = credenciado.Tid; executorHistorico.Nome = credenciado.Nome; executorHistorico.Login = credenciado.Usuario.Login; executorHistorico.Tipo = eExecutorTipo.Credenciado; bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); #region Pessoa using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia()) { bancoDeDadosInterno.IniciarTransacao(); if (!_pessoaInternoBus.Existe(credenciado.Pessoa.CPFCNPJ, bancoDeDadosInterno)) { credenciado.Pessoa = _pessoaCredenciadoBus.Obter(credenciado.Pessoa.Id, bancoDeDados); int id = credenciado.Pessoa.Id; credenciado.Pessoa.Id = 0; #region Juridica Pessoa/Representantes if (credenciado.Pessoa.IsJuridica && credenciado.Pessoa.Juridica.Representantes != null) { Pessoa pessoaAux = null; for (int i = 0; i < credenciado.Pessoa.Juridica.Representantes.Count; i++) { pessoaAux = credenciado.Pessoa.Juridica.Representantes[i]; int representanteInternoID = _pessoaInternoBus.ObterId(pessoaAux.CPFCNPJ, bancoDeDadosInterno); if (representanteInternoID == 0) { //Cria a pessoa do representante no interno pessoaAux = _pessoaCredenciadoBus.Obter(pessoaAux.Id, bancoDeDados); pessoaAux.Id = 0; #region Conjuge if (pessoaAux.Fisica.ConjugeId > 0) { int conjugeInternoId = _pessoaInternoBus.ObterId(pessoaAux.Fisica.ConjugeCPF, bancoDeDadosInterno); if (conjugeInternoId == 0) { // Cria Conjuge do representante no interno Pessoa pessoaConjuge = _pessoaCredenciadoBus.Obter(pessoaAux.Fisica.ConjugeId.GetValueOrDefault(), bancoDeDados); pessoaConjuge.Id = 0; pessoaConjuge.Fisica.ConjugeId = 0; _pessoaInternoBus.Salvar(pessoaConjuge, bancoDeDadosInterno, executorHistorico); pessoaAux.Fisica.ConjugeId = pessoaConjuge.Id; } else { pessoaAux.Fisica.ConjugeId = conjugeInternoId; } } #endregion _pessoaInternoBus.Salvar(pessoaAux, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Juridica.Representantes[i].Id = pessoaAux.Id; } else { credenciado.Pessoa.Juridica.Representantes[i].Id = representanteInternoID; } } } #endregion #region Fisica Conjuge if (credenciado.Pessoa.IsFisica && credenciado.Pessoa.Fisica.ConjugeId > 0) { int conjugeInternoId = _pessoaInternoBus.ObterId(credenciado.Pessoa.Fisica.ConjugeCPF, bancoDeDadosInterno); if (conjugeInternoId == 0) { // Cria Conjuge do representante no interno Pessoa pessoaConjuge = _pessoaCredenciadoBus.Obter(credenciado.Pessoa.Fisica.ConjugeId.GetValueOrDefault(), bancoDeDados); pessoaConjuge.Id = 0; pessoaConjuge.Fisica.ConjugeId = 0; _pessoaInternoBus.Salvar(pessoaConjuge, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Fisica.ConjugeId = pessoaConjuge.Id; } else { credenciado.Pessoa.Fisica.ConjugeId = conjugeInternoId; } } #endregion _pessoaInternoBus.Salvar(credenciado.Pessoa, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Id = id; } } #endregion #region Usuário string hashSenha = GerenciarAutenticacao.Criptografar(credenciado.Usuario.Login, senha); if (credenciado.Usuario.Id <= 0) { AutenticacaoExecutor executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Credenciado; executor.UsuarioId = credenciado.Id; executor.Tid = credenciado.Tid; _busUsuario.Salvar(credenciado.Usuario, hashSenha, executor, bancoDeDados); } _da.Ativar(credenciado, bancoDeDados, executorHistorico); bancoDeDados.Commit(); #endregion } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }