@CALERA escreveu:
Bom dia pessoal, gostaria da ajuda de vocês mais uma vez.
Estou desenvolvendo um sistema com Primefaces 5.0 e até agora ia tudo bem, mas, me deparei com a necessidade de criar uma maneira do usuário alterar a sua própria senha.
O usuário, quando cadastrado, recebe uma senha "padrão" do sistema, aí o gestor informa o login e a senha para ele que, ao acessar pela primeira vez, recebe um Dialog em 'modal' para alterar a senha.
Outro caso de alteração seria por necessidade, caso o usuário 'desconfie' que alguém tenha utilizado a sua senha, etc...O que eu tenho até então:
Quando o usuário loga no sistema, junto do login, eu retorno o usuário inteiro, não faço somente a verificação, recupero todos os dados do usuário na sessão.
LoginBean:
public String efetuaLogin() throws NoSuchAlgorithmException { usuario.setSenha(Criptografia.criptografar(usuario.getSenha())); Usuario perfilUsuario = dao.existe(this.usuario); if (perfilUsuario != null) { this.usuario = perfilUsuario; usuarioLogado.logar(usuario); // eventoLogin.fire(usuario); FacesContext.getCurrentInstance().addMessage("LOGIN", new FacesMessage(FacesMessage.SEVERITY_INFO, "Bem vindo ", usuario.getUsuarioNome())); return "index?faces-redirect=true"; } else { usuarioLogado.deslogar(); this.usuario = new Usuario(); FacesContext.getCurrentInstance().addMessage("LOGIN", new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERRO DE LOGIN", "Usuário ou senha inválidos")); return "login"; } }
E aí no meu _template.xhtml eu coloquei o Dialog. Por que no _template.xhtml? Porque eu criei um 'botão' para ele no Menu ( megaMenu ), então, por questão de praticidade, ele está ali...
só o Dialog<p:dialog widgetVar="alteraSenha" header="Alterar Senha"
visible="#{usuarioLogadoBean.usuario.senha eq 'altereiÉclaro' ? 'true' : 'false'}"
rendered="true" appendTo="@(body)" draggable="false" modal="true"
resizable="false" style="width: 230px; height: 300px;"><h:form style="width: 230px; height: 190px; margin-left: 1%; margin-right: 1px; padding-top: 5px;"> <p:growl id="msgs" showDetail="true" /> <div class="ui-g-12" style="padding-bottom: 10%"> <p:password id="nova" match="confirma" validatorMessage="As senhas precisam ser iguais" required="true" requiredMessage="Informe a nova senha" placeholder="Nova senha" style="text-align:center; height: 25px;" /> </div> <div class="ui-g-12" style="padding-bottom: 10%"> <p:password id="confirma" match="confirma" value="#{usuarioBean.usuario.senha}" required="true" requiredMessage="Confirme a nova senha" placeholder="Confirmar senha" style="text-align:center; height: 25px;" /> </div> <p:separator /> <div class="ui-g12" style="padding-top: 10%;"> <h:commandButton value="Alterar" action="#{usuarioBean.grava()}" ajax="false" /> </div> </h:form> </p:dialog>
O problema: não sei como passar os dados do usuário logado para o método que grava.
Vi um post que falava sobre "Adicionar e Recuperar" dados do usuário na sessão ( JSF ), mas, confesso que não entendi 'como eu devo fazer, ou aonde devo fazer isto"...
Este é o post: https://jbossdivers.wordpress.com/2011/09/12/adicionando-e-recuperando-objetos-de-sessao-no-jsf/
Eu agradeço muito pela ajuda.
Abraço!
Mensagens: 7
Participantes: 2