PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Galera estou fazendo manutenção e sistema de login. Mas não estou conseguindo salvar a senha alterada pelo usuário no banco, ele altera mais quando fecha a seção ela retorna a padrão. #527126

28/07/2015

0

<
@SuppressWarnings("serial")
@ManagedBean (name = "mbAtualizarSenha")
@ViewScoped
public class MbAtualizarSenha implements Serializable{

private String novaSenha;
private String confirmaSenha;
private Usuario usuario;
private boolean boolSucesso;
private boolean boolPrimeiroAcesso;

private static final Logger logger = Logger.getLogger(MbAtualizarSenha.class);

public MbAtualizarSenha(){

usuario = new Usuario();
verificarUserLogado();
trocarSenha();
}

public String getNovaSenha() {
return novaSenha;
}

public void setNovaSenha(String novaSenha) {
this.novaSenha = novaSenha;
}

public String getConfirmaSenha() {
return confirmaSenha;
}

public void setConfirmaSenha(String confirmaSenha) {
this.confirmaSenha = confirmaSenha;
}

public boolean isBoolSucesso() {
return boolSucesso;
}

public void setBoolSucesso(boolean boolSucesso) {
this.boolSucesso = boolSucesso;
}

public Usuario getUsuario() {
return usuario;
}

public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}

public boolean isBoolPrimeiroAcesso() {
return boolPrimeiroAcesso;
}

public void setBoolPrimeiroAcesso(boolean boolPrimeiroAcesso) {
this.boolPrimeiroAcesso = boolPrimeiroAcesso;
}

private void trocarSenha(){

if (usuario.isUsrPrimeiroAcesso())

boolPrimeiroAcesso = true;
else
boolPrimeiroAcesso = false;
}

public void verificarUserLogado(){
String newUrl;
usuario = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userLogado");

if (usuario == null){
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
newUrl = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/index.jsf"));

try {
ectx.redirect(newUrl);
} catch (IOException ex) {
throw new FacesException(ex);
}finally{
newUrl = null;
}
}
}

public void alterarSenhaUser(){
boolSucesso = false;
Usuario user = new Usuario();
try {

if (!novaSenha.equals("") && !confirmaSenha.equals("")) {

if (novaSenha.equals(confirmaSenha)) {

try {

user = new UsuarioDao().buscaPorId(usuario.getUsrCodigo());
} catch (Exception e) {

GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "Ops... error ao tentar atualizar a senha.");
logger.error("[Error] MbAtualizarSenha - alterarSenhaUser.", e);
boolSucesso = false;
}

if (!user.getUsrSenha().equals(novaSenha)) {

if (!novaSenha.toLowerCase().contains("detran")){

verificarCamposAlfaNumerico(user);
}else{

GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "Você digitou uma senha contendo detran. Por favor, escolha outra.");
boolSucesso = false;
}
}else{

GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "A Nova Senha deve ser diferente da atual.");
limparCamposSenha();
boolSucesso = false;
}

if (boolSucesso) {

destino(user);
}
}else{
GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "A senha e a contra senha devem ser iguais.");
limparCamposSenha();
boolSucesso = false;
}
}

} catch (Exception e) {
logger.error("[Error] MbAtualizarSenha - alterarSenhaUser ", e);
GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "Ops... error ao tentar atualizar a senha.");
boolSucesso = false;
}

}

public void verificarCamposAlfaNumerico(Usuario usuario){

Pattern p = Pattern.compile("(?=.).*([A-Za-z][0-9]|[0-9][A-Za-z]).*");
Matcher m = p.matcher(novaSenha);
if(m.find()) {

usuario.setUsrSenha(novaSenha);
try {

usuario.setUsrPrimeiroAcesso(false);
new UsuarioDao().atualizar(usuario);
boolSucesso=true;
boolPrimeiroAcesso = false;

GerarMensagens.addMensagem2(FacesMessage.SEVERITY_INFO, "Senha Atualizada com sucesso!");
} catch (Exception e) {

boolSucesso = false;
GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "Não foi possível atualizar a senha.");
logger.error("[Error] MbAtualizarSenha - verificarCamposAlfNumerico.", e);
}
}else{

boolSucesso=false;
GerarMensagens.addMensagem2(FacesMessage.SEVERITY_ERROR, "Você digitou a senha com menos de 6 caracter, (Correto Ex: Vh6da1) ou que não possui caracter alfanumérico, (Ex: Vh6da1)");
}
}

private void destino(Usuario usuario) {

/* String destino = "";
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
destino = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/chamadaatendimento.jsf"));
try {
ectx.redirect(destino);
} catch (IOException ex) {
throw new FacesException(ex);
}*/

String newUrl = "";

FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();

if (boolPrimeiroAcesso) {

newUrl = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/atualizarsenha.jsf"));
}else{
if (usuario.getSetor().getId().getSetCodigo() == SetorEnum.SISTEMA.getValor() || new UsuarioDao().existeGerente(usuario.getUsrCodigo())){
newUrl = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/home_configuracao.jsf"));
}else if (usuario.getSetor().getId().getSetCodigo() == SetorEnum.BALCAO.getValor()) {
newUrl = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/cadastrasenha.jsf"));
}else{
newUrl = ectx.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/index.jsf"));
}
}

try {
ectx.redirect(newUrl);
} catch (IOException ex) {
throw new FacesException(ex);
}
}


public void limparCamposSenha(){

novaSenha = "";
confirmaSenha = "";
}

}/>
Rafael Prado

Rafael Prado

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar