package com.algaworks.pedidovenda.security;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@Named
@RequestScoped
public class Seguranca {
@Inject
private ExternalContext externalContext;
public String getNomeUsuario() {
String nome = null;
UsuarioSistema usuarioLogado = getUsuarioLogado();
if (usuarioLogado != null) {
nome = usuarioLogado.getUsuario().getNome();
}
return nome;
}
@Produces
@UsuarioLogado
public UsuarioSistema getUsuarioLogado() {
UsuarioSistema usuario = null;
UsernamePasswordAuthenticationToken auth = (UsernamePasswordAuthenticationToken)
FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
if (auth != null && auth.getPrincipal() != null) {
usuario = (UsuarioSistema) auth.getPrincipal();
}
return usuario;
}
public boolean isEmitirPedidoPermitido() {
return externalContext.isUserInRole("ADMINISTRADORES")
|| externalContext.isUserInRole("VENDEDORES");
}
public boolean isCancelarPedidoPermitido() {
return externalContext.isUserInRole("ADMINISTRADORES")
|| externalContext.isUserInRole("VENDEDORES");
}
}