Boa tarde galerinha, estou desenvolvendo um software em java com JEE 7, Hibernate 5.1, JSF 2.2, PrimeFaces 5.3 e Spring Security 4.0.4 e minha dúvida é a seguinte.
Tenho o cenário: Usuário, Empresa, Lojas.
Preciso saber se o usuário tem perfil Vendedor ou Gerente e se pertence a loja X, loja Y ou a Empresa.
Não estou sabendo como configurar essa lógica. Vocês poderiam me ajudar?
Sugiro uma das duas formas
interface Usuario {
public void setPertence(Unidade u);
public Unidade getPertence();
}
class Vendedor implements Usuario {}
class Gerente implements Usuario {}
interface Unidade{}
class Loja implements Unidade {}
class Empresa implements Unidade{}
para saber o perfil
usuario instanceof Vendedor
usuario instanceof Gerente
ou
class Usuario {
public void setCargo(int cargo); // 0 para vendedor, 1 para gerente
public int getCargo();
public void setPertence(Unidade u);
public Unidade getPertence();
}
class Unidade{
public void setTipo(int tipo); // 0 para loja, 1 para empresa
public int getTipo();
}
para saber o perfil
usuario.getCargo() == 0 ? Vendedor
usuario.getCargo() == 1 ? Gerente
Obrigado Diego, consegui resolver. Sua dica me ajudou a pensar numa boa solução.
Olá Yuri, recomendaria que você utilizasse a propria api de security do JEE na qual você pode integrar no seus serviços EJB e até mesmo nos proprios componentes do JSF.
De forma sucinta, você teria que criar uma tabela com todos os Roles (tipos de perfis), e ai você faria um relacionamente simples (um pra um unidirecional) com a sua tabela de perfis.
Vou passar alguns links sobre essa api security, você pode usar ela declarativamente (com Annotations) ou programaticamente.
Vai facilitar muito sua vida, pois você vai aprender a utiliza-la somente uma vez e vai poder usar em todos seus projetos JEE.
Caso você queira implementar e tenha alguma duvida posso tentar ajuda-lo so me contatar.
Valeu !
Obrigado Michel_Dib_Jorge. Estarei estudando a api security do JEE. Qualquer dúvida posto aqui.