public async Task <IEnumerable <OrganizacaoUsuarioMySql> > ListarOrganizacoesUsuarioEmail(string email) { // buscar usuário string sql = @"select * from nqs.usuarios where Login = @Login;"; Dictionary <string, object> keyValuePairs = new Dictionary <string, object> { { "@Login", email } }; UsuarioMySql usuarioMySql = base.Obter <UsuarioMySql>(sql, keyValuePairs); if (usuarioMySql == null) { return(null); } // buscar organizações sql = @"select * from nqs.organizacaousuarios where IdUsuario = @IdUsuario;"; keyValuePairs = new Dictionary <string, object> { { "@IdUsuario", usuarioMySql.Id } }; IEnumerable <OrganizacaoUsuarioMySql> organizacaoUsuarioMySqls = await base.ListarPorAsync <OrganizacaoUsuarioMySql>(sql, keyValuePairs).ConfigureAwait(true); foreach (var item in organizacaoUsuarioMySqls) { item.Usuario = usuarioMySql; } return(organizacaoUsuarioMySqls); }
private UsuarioViewModel VerificaLoginSenha(LoginMySql objeto) { try { UsuarioViewModel retorno = null; // efetuar login UsuarioMySql busca = _usuarioMySqlRepository.ObterUsuarioLogin(new UsuarioMySql { Login = objeto.Usuario, Senha = objeto.Senha }); // objeto retorno retorno = new UsuarioViewModel { Ativo = busca.Ativo, ContaGoogle = busca.ContaGoogle, DataCriacao = busca.DataCriacao, DataEdicao = busca.DataEdicao, Id = busca.Id, Login = busca.Login, ResponsavelCriacao = busca.ResponsavelCriacao, ResponsavelEdicao = busca.ResponsavelEdicao, Senha = busca.Senha, }; if (busca == null) { return(retorno); } // comparar senha string hashGerado = CriptoHashSha256.GetSha256Hash(objeto.Senha); if (hashGerado == busca.Senha) { return(retorno); } return(retorno); } catch (Exception e) { return(null); } }
public async Task <UsuarioLogadoMySqlViewModel> AutenticaComGoogle(UsuarioSocialMySqlViewModel login) { UsuarioLogadoMySqlViewModel usuarioLogado = null; if (login != null) { UsuarioMySql usuario = VerificaLoginGoogle(login); if (usuario == null) { return(usuarioLogado); } if (!usuario.Ativo) { return(usuarioLogado); } if (!usuario.ContaGoogle) { return(usuarioLogado); } try { IEnumerable <OrganizacaoUsuarioMySql> organizacoes = await _organizacaoMySqlRepository.ListarOrganizacoesUsuarioEmail(usuario.Login); OrganizacaoUsuarioMySql organizacaoUsuario = null; if (organizacoes.Any(x => x.UltimaAcessada)) { organizacaoUsuario = organizacoes.FirstOrDefault(x => x.UsuarioPlataforma && x.UltimaAcessada); } else { organizacaoUsuario = organizacoes.FirstOrDefault(x => x.UsuarioPlataforma); } var pessoa = await _pessoaMySqlRepository.BuscarPorEmail(usuario.Login); if (!usuario.Ativo) { return(usuarioLogado); } if (!pessoa.GoobeeAdmin) { if (organizacaoUsuario == null || !string.IsNullOrWhiteSpace(organizacaoUsuario.IdUsuario)) { return(usuarioLogado); } if (organizacaoUsuario.Pessoa == null || organizacaoUsuario.Pessoa.Status == false) { return(usuarioLogado); } List <string> idsTimes = new List <string>(); foreach (var timePessoa in organizacaoUsuario.Pessoa.TimePessoas) { if (timePessoa.IdOrganizacao == organizacaoUsuario.IdOrganizacao) { idsTimes.Add(timePessoa.IdTime); } } usuarioLogado = new UsuarioLogadoMySqlViewModel() { DataCriacao = organizacaoUsuario.Pessoa.DataCriacao, Email = organizacaoUsuario.Pessoa.Email, Nome = organizacaoUsuario.Pessoa.Nome, Foto = organizacaoUsuario.Pessoa.Foto, Id = organizacaoUsuario.IdUsuario, IdPessoa = organizacaoUsuario.IdPessoa, IdOrganizacao = organizacaoUsuario.IdOrganizacao, RoleEnum = organizacaoUsuario.OrganizacaoUsuarioRole.Role, IdsTimes = idsTimes }; } else { string idOrganizacao; if (!string.IsNullOrWhiteSpace(pessoa.IdUltimaOrgAcessada)) { idOrganizacao = pessoa.IdUltimaOrgAcessada; } else { idOrganizacao = _organizacaoMySqlRepository.Obter()?.Id; } usuarioLogado = new UsuarioLogadoMySqlViewModel() { DataCriacao = DateTime.Now, Email = pessoa.Email, Nome = pessoa.Nome, Foto = pessoa.Foto, Id = usuario.Id, IdPessoa = pessoa.Id, IdOrganizacao = idOrganizacao, RoleEnum = OrganizacaoUsuarioRoleEnum.GoobeeAdmin, IdsTimes = new List <string>() }; } return(usuarioLogado); } catch (Exception error) { return(usuarioLogado); } } if (usuarioLogado != null) { usuarioLogado.Token = await CriaToken(usuarioLogado, login.IdToken); if (usuarioLogado.Token == null) { usuarioLogado = null; } } return(usuarioLogado); }