Quantcast
Channel: GUJ - Tópicos com a tag java
Viewing all articles
Browse latest Browse all 17410

Alterar senha do usuário logado

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 17410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>