Olá a todos, eu sei q vcs vão querer me bater por criar mais um tópico desses, mas o fato é q eu já li vários tópicos, tutoriais, e ainda não consegui entender, ou melhor, até consegui entender vários deles, mas não sei se é exatamente o q eu procurava, então acabei não conseguindo implementar minha idéia…
Bom, eu terei mais páginas no site, mas por enquanto tenho a index.xhtml e a enviarPromocoesCliente.xhtml, eu ja implementei várias coisas, mas to apanhando nesse login…
A idéia é a seguinte, a pagina inicial, qualquer pessoa podera acessar, é uma pagina que por hora vai exibir um catalogo de promoções do mês ou uma lista de produtos que o usuario pesquisou através de filtros disponíveis… Já a pagina enviarPromocoesCliente.xhtml, somente quem fizer login poderá acessar… Abaixo vou relacionar o que eu já fiz, e o que eu nao sei fazer:
Parte que interessa referente ao login, na index.xhtml<p:outputPanel>
<h:outputText value="Nome:"/>
<p:inputText value="#{mBUsuarioLogado.nome}" />
<h:outputText value="Senha:" />
<p:password value="#{mBUsuarioLogado.senha}" feedback="false" minLength="3"/>
<p:commandButton value="Logar"
action="#{mBUsuarioLogado.login()}"
update="messages,pgLogin"
style="font-family: Tahoma;font-size: 10px"/>
</p:outputPanel>
Abaixo o MB que verifica o usuario e mantém um objeto usuarioLogado com o carinha que logou[code]@ManagedBean
@SessionScoped
public class MBUsuarioLogado {
private DAO dao = DAO.getInstance();
private HibernateUtil hu = new HibernateUtil();
private List<Usuarios> usuarios = new ArrayList<Usuarios>();
private Usuarios usuarioLogado;
private String nome;
private String senha;
//construtor, sets e gets
public void login() {
boolean nomeOk = false;
boolean senhaOk = false;
usuarioLogado = null;
usuarios.clear();
Criteria c = hu.getCriteria(Usuarios.class);
usuarios = dao.listarCriteria(c);
for (Usuarios u : usuarios) {
if (u.getNome().equals(nome)) {
nomeOk = true;
if (u.getSenha().equals(senha)) {
senhaOk = true;
usuarioLogado = u;
}
break;
}
}
if (!nomeOk) {
FacesMessage error = new FacesMessage("Falhou", "Nome incorreto !");
FacesContext.getCurrentInstance().addMessage(null, error);
}
if (!senhaOk) {
FacesMessage error = new FacesMessage("Falhou", "Senha incorreta !");
FacesContext.getCurrentInstance().addMessage(null, error);
}
if (nomeOk && senhaOk) {
FacesMessage msg = new FacesMessage("Login OK", usuarioLogado.getNome());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
nome = "";
senha = "";
}
public void logout() {
usuarioLogado = null;
}
}[/code]E agora ? eu nao sei continuar daqui… O que eu tenho q fazer para que, somente quando alguem tente acessar a pagina enviarPromocoesCliente.xhtml, seja verificado se existe um usuario logado ?
Desculpe a nubice ae pessoal, é q tenho pouca experiencia na web, e to apanhando há 3 dias desse login… hahaha
Desde já grato ! t+