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 = "";
}
}/>
@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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)