Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Pegar ID do usuário logado no Autorizador

A classe Autorizador do projeto proposto pelo alura tem a variável UsuarioLogado que armazena o nome do usuário que esta logado no sistema.

De que forma eu poderia pegar o ID de quem esta logado ?

Meu objetivo e criar um método que liste todas as informações do usuario que fizer login no sistema.

5 respostas

Oi Rafael,

da mesma forma como vc pega o nome vc pegaria a ID do usuário:

Usuario usuarioLogado = (Usuario) context.getExternalContext()
            .getSessionMap().get("usuarioLogado");
Integer id = usuarioLogado.getId();

ou na EL:

<h:outputText value="#{sessionScope['usuarioLogado'].id}" />

Tudo bem?

abs

Nico, realmente faz sentindo. Porem eu quero utilizar esse usuarioLogado em outra classe, fora da Autorizador.

Como a classe Autorizador e do tipo Void, não consigo utilizar ela em outras classes porque ela não tem nenhum retorno.

solução!

Oi Rafael,

o codigo tbm funciona no ManagedBean:

FacesContext context = FacesContext.getCurrentInstance() ;
Usuario usuarioLogado = (Usuario) context.getExternalContext() .getSessionMap().get("usuarioLogado");
Integer id = usuarioLogado.getId();

abs

Nico, eu tenho a seguinte resposta:

Hibernate: insert into Time (nome, senhaTime) values (?, ?) Pessoa [id=null, nomeUsuario=lolo, senhaUsuario=lolo, nomeCompleto=null, email=null, idade=null, listaTimes=null] FASE: RENDER_RESPONSE 6

Ele esta mostrando o ID como null. Eu vou tentar incluir uma consulta sql no banco para tentar guardar essa informação.

Oi Rafael,

o problema está agora no LoginBean no método efetuaLogin. Nesse método vc precisa carregar o usuário do banco de dados.

Como foi implementado no cap 11 não guardamos o usuario completo na sessão http, apenas o usuario "que vem do formulário" (que tem email e nome, sem id).

tudo bem?

abs