public async Task<UsuarioAutenticacaoRetornoDto> Autenticar(string login, string senha) { var retornoAutenticacaoEol = await servicoAutenticacao.AutenticarNoEol(login, senha); if (retornoAutenticacaoEol.Item1.Autenticado) { var usuario = servicoUsuario.ObterUsuarioPorCodigoRfLoginOuAdiciona(retornoAutenticacaoEol.Item2, login); retornoAutenticacaoEol.Item1.PerfisUsuario = servicoPerfil.DefinirPerfilPrioritario(retornoAutenticacaoEol.Item3, usuario); var perfilSelecionado = retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado; var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfilSelecionado); if (permissionamentos == null || !permissionamentos.Any()) { retornoAutenticacaoEol.Item1.Autenticado = false; } else { var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); retornoAutenticacaoEol.Item1.Token = servicoTokenJwt.GerarToken(login, usuario.CodigoRf, retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado, listaPermissoes); usuario.AtualizaUltimoLogin(); repositorioUsuario.Salvar(usuario); await servicoAbrangencia.Salvar(login, perfilSelecionado, true); } } return retornoAutenticacaoEol.Item1; }
public async Task <UsuarioAutenticacaoRetornoDto> Autenticar(string login, string senha) { login = login.Trim().ToLower(); var retornoAutenticacaoEol = await servicoAutenticacao.AutenticarNoEol(login, senha); if (!retornoAutenticacaoEol.Item1.Autenticado) { return(retornoAutenticacaoEol.Item1); } var dadosUsuario = await servicoEOL.ObterMeusDados(login); var usuario = servicoUsuario.ObterUsuarioPorCodigoRfLoginOuAdiciona(retornoAutenticacaoEol.Item2, login, dadosUsuario.Nome, dadosUsuario.Email, true); retornoAutenticacaoEol.Item1.PerfisUsuario = await servicoPerfil.DefinirPerfilPrioritario(retornoAutenticacaoEol.Item3, usuario); List <Guid> perfis = retornoAutenticacaoEol.Item1.PerfisUsuario.Perfis.Select(x => x.CodigoPerfil).ToList(); servicoAbrangencia.RemoverAbrangenciasHistoricasIncorretas(login, perfis); var perfilSelecionado = retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado; var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfilSelecionado); if (permissionamentos == null || !permissionamentos.Any()) { retornoAutenticacaoEol.Item1.Autenticado = false; return(retornoAutenticacaoEol.Item1); } var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); // Revoga token atual para geração de um novo //await servicoTokenJwt.RevogarToken(login); // Gera novo token e guarda em cache retornoAutenticacaoEol.Item1.Token = servicoTokenJwt.GerarToken(login, dadosUsuario.Nome, usuario.CodigoRf, retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado, listaPermissoes); retornoAutenticacaoEol.Item1.DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(); usuario.AtualizaUltimoLogin(); repositorioUsuario.Salvar(usuario); await servicoAbrangencia.Salvar(login, perfilSelecionado, true); retornoAutenticacaoEol.Item1.UsuarioLogin = usuario.Login; retornoAutenticacaoEol.Item1.UsuarioRf = usuario.CodigoRf; return(retornoAutenticacaoEol.Item1); }
public async Task <UsuarioAutenticacaoRetornoDto> Autenticar(string login, string senha) { login = login.Trim().ToLower(); var retornoAutenticacaoEol = await servicoAutenticacao.AutenticarNoEol(login, senha); if (!retornoAutenticacaoEol.Item1.Autenticado) { return(retornoAutenticacaoEol.Item1); } if (!retornoAutenticacaoEol.Item4 && retornoAutenticacaoEol.Item5) { retornoAutenticacaoEol.Item3 = ValidarPerfilCJ(retornoAutenticacaoEol.Item2, retornoAutenticacaoEol.Item1.UsuarioId, retornoAutenticacaoEol.Item3, login).Result; } var dadosUsuario = await servicoEOL.ObterMeusDados(login); var usuario = servicoUsuario.ObterUsuarioPorCodigoRfLoginOuAdiciona(retornoAutenticacaoEol.Item2, login, dadosUsuario.Nome, dadosUsuario.Email, true); retornoAutenticacaoEol.Item1.PerfisUsuario = await servicoPerfil.DefinirPerfilPrioritario(retornoAutenticacaoEol.Item3, usuario); var perfilSelecionado = retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado; var permissionamentos = await repositorioCache.Obter($"Permissionamento-{perfilSelecionado.ToString()}", () => servicoEOL.ObterPermissoesPorPerfil(perfilSelecionado), 720); if (permissionamentos == null || !permissionamentos.Any()) { retornoAutenticacaoEol.Item1.Autenticado = false; return(retornoAutenticacaoEol.Item1); } var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); // Revoga token atual para geração de um novo //await servicoTokenJwt.RevogarToken(login); // Gera novo token e guarda em cache retornoAutenticacaoEol.Item1.Token = servicoTokenJwt.GerarToken(login, dadosUsuario.Nome, usuario.CodigoRf, retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado, listaPermissoes); retornoAutenticacaoEol.Item1.DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(); //var fromDate = servicoTokenJwt.ObterDataHoraCriacao(); usuario.AtualizaUltimoLogin(); repositorioUsuario.Salvar(usuario); await servicoAbrangencia.Salvar(login, perfilSelecionado, true); return(retornoAutenticacaoEol.Item1); }