parent
53871ac799
commit
aaf0d4567a
6
pom.xml
6
pom.xml
|
@ -4,12 +4,12 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>br.com.rjconsultores</groupId>
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
<artifactId>ventaboletosadm</artifactId>
|
<artifactId>ventaboletosadm</artifactId>
|
||||||
<version>1.81.0</version>
|
<version>1.82.0</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<modelWeb.version>1.61.0</modelWeb.version>
|
<modelWeb.version>1.62.0</modelWeb.version>
|
||||||
<flyway.version>1.46.0</flyway.version>
|
<flyway.version>1.47.0</flyway.version>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.zkoss.util.resource.Labels;
|
import org.zkoss.util.resource.Labels;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
|
import org.zkoss.zk.ui.Execution;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
@ -97,8 +99,19 @@ public class IndexController extends MyGenericForwardComposer {
|
||||||
|
|
||||||
if (usuario == null) {
|
if (usuario == null) {
|
||||||
toolBarUser.setVisible(Boolean.FALSE);
|
toolBarUser.setVisible(Boolean.FALSE);
|
||||||
|
|
||||||
|
Execution exec = Executions.getCurrent();
|
||||||
|
String param = exec.getParameter("param");
|
||||||
|
|
||||||
|
if(param != null) {
|
||||||
|
Map args = new HashMap();
|
||||||
|
args.put("login", param);
|
||||||
|
|
||||||
|
openWindow("/recuperarSenha.zul", "Recuperar Senha", args, MODAL, Boolean.FALSE);
|
||||||
|
} else {
|
||||||
|
openWindow("/login.zul", Labels.getLabel("winLogin.title"), arg, MODAL, Boolean.FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
openWindow("/login.zul", Labels.getLabel("winLogin.title"), arg, MODAL, Boolean.FALSE);
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
win.setCtrlKeys("^q");
|
win.setCtrlKeys("^q");
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
/*
|
||||||
|
* To change this template, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.rjconsultores.ventaboletos.web.gui.controladores;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.mail.SendFailedException;
|
||||||
|
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.zkoss.util.resource.Labels;
|
||||||
|
import org.zkoss.zhtml.Messagebox;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
|
import org.zkoss.zk.ui.event.Event;
|
||||||
|
import org.zkoss.zk.ui.util.Clients;
|
||||||
|
import org.zkoss.zul.Button;
|
||||||
|
import org.zkoss.zul.Textbox;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Constante;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.RecuperarSenha;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
||||||
|
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||||
|
import com.rjconsultores.ventaboletos.service.UsuarioService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.SendMail;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
|
||||||
|
|
||||||
|
@Controller("loginController")
|
||||||
|
@Scope("prototype")
|
||||||
|
public class LoginController extends MyGenericForwardComposer {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static final String HOST_SMTP_RECUPERACAOSENHA = "HOST_SMTP_RECUPERACAOSENHA";
|
||||||
|
private static final String PORTA_SMTP_RECUPERACAOSENHA = "PORTA_SMTP_RECUPERACAOSENHA";
|
||||||
|
private static final String USUARIO_SMTP_RECUPERACAOSENHA = "USUARIO_SMTP_RECUPERACAOSENHA";
|
||||||
|
private static final String SENHAUSUARIO_SMTP_RECUPERACAOSENHA = "SENHAUSUARIO_SMTP_RECUPERACAOSENHA";
|
||||||
|
private static final String URL_ADM = "URL_ADM";
|
||||||
|
private static Logger log = LogManager.getLogger(LoginController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UsuarioService usuarioService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ConstanteService constanteService;
|
||||||
|
|
||||||
|
private Button btnRecuperarSenha;
|
||||||
|
|
||||||
|
//login usuario, mantive o nome da tela para nao alterar o processo de login
|
||||||
|
private Textbox u;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterCompose(Component comp) throws Exception {
|
||||||
|
super.doAfterCompose(comp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button getBtnRecuperarSenha() {
|
||||||
|
return btnRecuperarSenha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBtnRecuperarSenha(Button btnRecuperarSenha) {
|
||||||
|
this.btnRecuperarSenha = btnRecuperarSenha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClick$btnRecuperarSenha(Event ev) {
|
||||||
|
try {
|
||||||
|
String login = u.getValue();
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(login)) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.camposVazios"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Usuario> usuarioList = usuarioService.buscarPelaCveUsuario(login);
|
||||||
|
|
||||||
|
//Nao encontrado nenhum usuario com o login
|
||||||
|
if(usuarioList.isEmpty()) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.loginNaoEncontrado"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(usuarioList.size() > 1) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.multiplusUsuariosPorLogin"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Usuario usuario = usuarioList.get(0);
|
||||||
|
|
||||||
|
if(StringUtils.isBlank(usuario.getDescCorreo())) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.configuracaoConstante"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Constante hostSmtp = constanteService.buscarPorNomeConstante(HOST_SMTP_RECUPERACAOSENHA);
|
||||||
|
Constante portaSmtp = constanteService.buscarPorNomeConstante(PORTA_SMTP_RECUPERACAOSENHA);
|
||||||
|
Constante usuarioSmtp = constanteService.buscarPorNomeConstante(USUARIO_SMTP_RECUPERACAOSENHA);
|
||||||
|
Constante senhaUsuarioSMTP = constanteService.buscarPorNomeConstante(SENHAUSUARIO_SMTP_RECUPERACAOSENHA);
|
||||||
|
Constante urlADM = constanteService.buscarPorNomeConstante(URL_ADM);
|
||||||
|
|
||||||
|
if(isNull(hostSmtp) || isNull(portaSmtp) || isNull(usuarioSmtp) || isNull(senhaUsuarioSMTP) || isNull(urlADM)) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.emailNaoCadastrado"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String URL = montarURL(login, urlADM, usuario);
|
||||||
|
|
||||||
|
|
||||||
|
enviarEmail(usuario, usuarioSmtp.getValorconstante(), hostSmtp.getValorconstante(), senhaUsuarioSMTP.getValorconstante(),
|
||||||
|
portaSmtp.getValorconstante(), URL);
|
||||||
|
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.MSG.EmailRecuperacaoSenhaEnviado"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error(ex.getLocalizedMessage());
|
||||||
|
Clients.alert(ex.getLocalizedMessage(), Labels.getLabel("winCambiaContrasena.title"), Messagebox.INFORMATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String montarURL(String login, Constante urlADM, Usuario usuario) {
|
||||||
|
String URL = urlADM.getValorconstante();
|
||||||
|
|
||||||
|
String dataAtual = DateUtil.getStringDate24Hour(new Date());
|
||||||
|
|
||||||
|
String paramEncode = login.concat(";").concat(dataAtual);
|
||||||
|
|
||||||
|
paramEncode = new String(Base64.encodeBase64(paramEncode.getBytes()));
|
||||||
|
|
||||||
|
URL = URL.concat("?param=").concat(paramEncode);
|
||||||
|
|
||||||
|
salvarParametro(paramEncode, usuario);
|
||||||
|
|
||||||
|
return URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void salvarParametro(String paramEncode, Usuario usuario) {
|
||||||
|
RecuperarSenha recSenhaExiste = usuarioService.buscarLinkRecuperacaoSenhaPeloParam(paramEncode);
|
||||||
|
|
||||||
|
//Para evitar criar mais de um link no mesmo minuto
|
||||||
|
if(recSenhaExiste == null) {
|
||||||
|
RecuperarSenha recSenha = new RecuperarSenha();
|
||||||
|
|
||||||
|
recSenha.setParam(paramEncode);
|
||||||
|
recSenha.setActivo(Boolean.TRUE);
|
||||||
|
recSenha.setFecmodif(new Date());
|
||||||
|
recSenha.setUsuarioId(usuario.getUsuarioId());
|
||||||
|
|
||||||
|
usuarioService.salvarLinkRecuperacaoSenha(recSenha);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isNull(Constante valorConstante) {
|
||||||
|
return valorConstante == null || StringUtils.isBlank(valorConstante.getValorconstante());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void enviarEmail(Usuario usuario, String usuarioSmtp, String smtpHost, String senhaSmtp, String portaSmtp, String urlADM) throws SendFailedException {
|
||||||
|
|
||||||
|
SendMail mail = new SendMail();
|
||||||
|
mail.setEmailTo(usuario.getDescCorreo());
|
||||||
|
mail.setEmailFrom(usuarioSmtp); // "cassiohcsilvadev@gmail.com"
|
||||||
|
mail.setSmtpHost(smtpHost); //"smtp.gmail.com"
|
||||||
|
mail.setSmtpPassword(senhaSmtp); // "jtzpzyzcjviyheym"
|
||||||
|
mail.setSmtpPort(portaSmtp); //"587"
|
||||||
|
mail.setSmtpUser(usuarioSmtp); //"cassiohcsilvadev@gmail.com"
|
||||||
|
mail.setAuth(true);
|
||||||
|
|
||||||
|
//URL: /ventaboletosadm/index.zul?param=USUARIO
|
||||||
|
|
||||||
|
String textoEmail = "RECUPERAÇÃO DE SENHA ADM. \n ";
|
||||||
|
textoEmail = textoEmail.concat("Link para recuperacao de senha: " + urlADM + " \n");
|
||||||
|
textoEmail = textoEmail.concat("O link tem validade de 5 minutos. ");
|
||||||
|
|
||||||
|
mail.setSubject("RECUPERAÇÃO DE SENHA ADM.");
|
||||||
|
mail.setText(textoEmail);
|
||||||
|
mail.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Textbox getU() {
|
||||||
|
return u;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setU(Textbox u) {
|
||||||
|
this.u = u;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,167 @@
|
||||||
|
package com.rjconsultores.ventaboletos.web.gui.controladores;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.zkoss.util.resource.Labels;
|
||||||
|
import org.zkoss.zhtml.Messagebox;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
import org.zkoss.zk.ui.event.Event;
|
||||||
|
import org.zkoss.zk.ui.util.Clients;
|
||||||
|
import org.zkoss.zul.Button;
|
||||||
|
import org.zkoss.zul.Textbox;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.RecuperarSenha;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
||||||
|
import com.rjconsultores.ventaboletos.service.UsuarioService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
|
||||||
|
|
||||||
|
@Controller("recuperarSenhaController")
|
||||||
|
@Scope("prototype")
|
||||||
|
public class RecuperarSenhaController extends MyGenericForwardComposer {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static Logger log = LogManager.getLogger(RecuperarSenhaController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UsuarioService usuarioService;
|
||||||
|
|
||||||
|
private Textbox txtUser;
|
||||||
|
private Textbox txtNewPassword;
|
||||||
|
private Textbox txtConfirmPassword;
|
||||||
|
private Button btnSalvar;
|
||||||
|
private Button btnFecharTela;
|
||||||
|
|
||||||
|
private RecuperarSenha recSenha;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterCompose(Component comp) throws Exception {
|
||||||
|
super.doAfterCompose(comp);
|
||||||
|
|
||||||
|
String param = (String) Executions.getCurrent().getArg().get("login");
|
||||||
|
|
||||||
|
if(param != null) {
|
||||||
|
recSenha = usuarioService.buscarLinkRecuperacaoSenhaPeloParam(param);
|
||||||
|
|
||||||
|
//Se nao existe no banco nao ativa a troca de senha
|
||||||
|
if(recSenha == null) {
|
||||||
|
desativarCampos();
|
||||||
|
} else {
|
||||||
|
btnFecharTela.setVisible(false);
|
||||||
|
String paramDecode = new String(Base64.decodeBase64(param.getBytes()));
|
||||||
|
|
||||||
|
String[] parametros = paramDecode.split(";");
|
||||||
|
|
||||||
|
if(parametros.length != 2) {
|
||||||
|
desativarCampos();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if(isDataValida(parametros)) {
|
||||||
|
txtUser.setText(parametros[0]);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
desativarCampos();
|
||||||
|
btnFecharTela.setLabel("Link expirado. Fechar tela.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void desativarCampos() {
|
||||||
|
txtUser.setDisabled(true);
|
||||||
|
txtNewPassword.setDisabled(true);
|
||||||
|
txtConfirmPassword.setDisabled(true);
|
||||||
|
|
||||||
|
btnSalvar.setVisible(false);
|
||||||
|
btnFecharTela.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isDataValida(String[] parametros) {
|
||||||
|
Date dataParam =DateUtil.getDateString24Hour(parametros[1]);
|
||||||
|
|
||||||
|
Date dataAtual = new Date();
|
||||||
|
|
||||||
|
Long minutos = DateUtil.getElapsedMinutos(dataParam, dataAtual);
|
||||||
|
|
||||||
|
//A data e valida em ate 5 minutos
|
||||||
|
return minutos <= 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fecharTela() {
|
||||||
|
closeWindow();
|
||||||
|
openWindow("/login.zul", Labels.getLabel("indexController.app.nome"), arg, MODAL, Boolean.FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClick$btnFecharTela(Event ev) {
|
||||||
|
fecharTela();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClick$btnSalvar(Event ev) throws InterruptedException {
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(txtUser.getValue())) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.camposVazios"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Usuario> usuarioList = usuarioService.buscarPelaCveUsuario(txtUser.getValue());
|
||||||
|
|
||||||
|
//Nao encontrado nenhum usuario
|
||||||
|
if(usuarioList.isEmpty()) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.camposVazios"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!txtNewPassword.getValue().equals(txtConfirmPassword.getValue())) {
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.erro.senhasDiferentes"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Usuario usuario = usuarioList.get(0);
|
||||||
|
|
||||||
|
usuarioService.cambiarContrasena(usuario, txtNewPassword.getValue());
|
||||||
|
|
||||||
|
//Desativar link
|
||||||
|
usuarioService.desativarLinkRecuperacaoSenha(recSenha);
|
||||||
|
|
||||||
|
Messagebox.show(Labels.getLabel("winCambiaContrasena.MSG.suscribirOK"),
|
||||||
|
Labels.getLabel("winCambiaContrasena.title"), Messagebox.OK, Messagebox.INFORMATION);
|
||||||
|
|
||||||
|
fecharTela();
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error(ex.getLocalizedMessage());
|
||||||
|
Clients.alert(ex.getLocalizedMessage(), Labels.getLabel("winCambiaContrasena.title"), Messagebox.INFORMATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button getBtnSalvar() {
|
||||||
|
return btnSalvar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBtnSalvar(Button btnSalvar) {
|
||||||
|
this.btnSalvar = btnSalvar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button getBtnFecharTela() {
|
||||||
|
return btnFecharTela;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBtnFecharTela(Button btnFecharTela) {
|
||||||
|
this.btnFecharTela = btnFecharTela;
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,6 +27,7 @@ import org.zkoss.zul.Button;
|
||||||
import org.zkoss.zul.Checkbox;
|
import org.zkoss.zul.Checkbox;
|
||||||
import org.zkoss.zul.Combobox;
|
import org.zkoss.zul.Combobox;
|
||||||
import org.zkoss.zul.Comboitem;
|
import org.zkoss.zul.Comboitem;
|
||||||
|
import org.zkoss.zul.Datebox;
|
||||||
import org.zkoss.zul.Label;
|
import org.zkoss.zul.Label;
|
||||||
import org.zkoss.zul.ListModelList;
|
import org.zkoss.zul.ListModelList;
|
||||||
import org.zkoss.zul.Radio;
|
import org.zkoss.zul.Radio;
|
||||||
|
@ -155,6 +156,10 @@ public class EditarUsuarioController extends MyGenericForwardComposer {
|
||||||
private boolean indConstanteIndMultiPuntoVenta;
|
private boolean indConstanteIndMultiPuntoVenta;
|
||||||
private final String nombreIndConstanteIndMultiPuntoVenta ="IND_MULTI_PUNTOVENTA";
|
private final String nombreIndConstanteIndMultiPuntoVenta ="IND_MULTI_PUNTOVENTA";
|
||||||
|
|
||||||
|
private Checkbox chkIndRecuperarSenha;
|
||||||
|
private Textbox txtMatricula;
|
||||||
|
private Datebox dataNascimento;
|
||||||
|
private Textbox txtSobrenomePaterno;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doAfterCompose(Component comp) throws Exception {
|
public void doAfterCompose(Component comp) throws Exception {
|
||||||
|
@ -592,6 +597,13 @@ public class EditarUsuarioController extends MyGenericForwardComposer {
|
||||||
usuario.setTipoVentaIntegracaoId(Long.valueOf(tipoVentaSeleccionado.getTipoventaId()));
|
usuario.setTipoVentaIntegracaoId(Long.valueOf(tipoVentaSeleccionado.getTipoventaId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(chkIndRecuperarSenha.isChecked()) {
|
||||||
|
if(dataNascimento.getValue() == null || StringUtils.isBlank(txtMatricula.getValue()) || StringUtils.isBlank(txtSobrenomePaterno.getValue())) {
|
||||||
|
MensagensUtils.showMessageExclamation("editarUsuarioController.MSG.necessarioPreencherDadosRecuperacao", TITULO_CONTROLER);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
usuario.setIndRetornaTodasLocalidades( chkRetornaTodasLocalidades.isChecked());
|
usuario.setIndRetornaTodasLocalidades( chkRetornaTodasLocalidades.isChecked());
|
||||||
usuario.setIndTrocaSenha(chkTrocarSenha.isChecked());
|
usuario.setIndTrocaSenha(chkTrocarSenha.isChecked());
|
||||||
|
|
||||||
|
@ -976,4 +988,36 @@ public class EditarUsuarioController extends MyGenericForwardComposer {
|
||||||
public void setChkTrocarSenha(Checkbox chkTrocarSenha) {
|
public void setChkTrocarSenha(Checkbox chkTrocarSenha) {
|
||||||
this.chkTrocarSenha = chkTrocarSenha;
|
this.chkTrocarSenha = chkTrocarSenha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Checkbox getChkIndRecuperarSenha() {
|
||||||
|
return chkIndRecuperarSenha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChkIndRecuperarSenha(Checkbox chkIndRecuperarSenha) {
|
||||||
|
this.chkIndRecuperarSenha = chkIndRecuperarSenha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Textbox getTxtMatricula() {
|
||||||
|
return txtMatricula;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtMatricula(Textbox txtMatricula) {
|
||||||
|
this.txtMatricula = txtMatricula;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Datebox getDataNascimento() {
|
||||||
|
return dataNascimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataNascimento(Datebox dataNascimento) {
|
||||||
|
this.dataNascimento = dataNascimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Textbox getTxtSobrenomePaterno() {
|
||||||
|
return txtSobrenomePaterno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtSobrenomePaterno(Textbox txtSobrenomePaterno) {
|
||||||
|
this.txtSobrenomePaterno = txtSobrenomePaterno;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -459,7 +459,8 @@
|
||||||
<value>com.rjconsultores.ventaboletos.entidad.HeaderTabelaEsquemaCorrida</value>
|
<value>com.rjconsultores.ventaboletos.entidad.HeaderTabelaEsquemaCorrida</value>
|
||||||
<value>com.rjconsultores.ventaboletos.entidad.Disponibilidad</value>
|
<value>com.rjconsultores.ventaboletos.entidad.Disponibilidad</value>
|
||||||
<value>com.rjconsultores.ventaboletos.entidad.EmpresaPMArtespConfig</value>
|
<value>com.rjconsultores.ventaboletos.entidad.EmpresaPMArtespConfig</value>
|
||||||
<value>com.rjconsultores.ventaboletos.entidad.EmpresaSicfeConfig</value>
|
<value>com.rjconsultores.ventaboletos.entidad.EmpresaSicfeConfig</value>
|
||||||
|
<value>com.rjconsultores.ventaboletos.entidad.RecuperarSenha</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
|
|
||||||
|
|
|
@ -9988,3 +9988,16 @@ winMovimentacionBilhetesPuntoVenta.numSerie.label = Série
|
||||||
winMovimentacionBilhetesPuntoVenta.origem.label = Origen
|
winMovimentacionBilhetesPuntoVenta.origem.label = Origen
|
||||||
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
||||||
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Naturaleza
|
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Naturaleza
|
||||||
|
|
||||||
|
editarUsuarioController.tabel.restaurarSenha= Restablecimiento de contraseña
|
||||||
|
editarUsuarioController.tabel.numeroMatricula= Registro
|
||||||
|
editarUsuarioController.tabel.dataNascimento= Fecha de nacimiento
|
||||||
|
editarUsuarioController.tabel.sobrenomePaterno= Apellido paterno
|
||||||
|
editarUsuarioController.MSG.necessarioPreencherDadosRecuperacao=Se deben completar todos los datos para utilizar la recuperación de contraseña.
|
||||||
|
winCambiaContrasena.erro.loginNaoEncontrado= No se encontró ningún usuario con el inicio de sesión proporcionado.
|
||||||
|
winCambiaContrasena.erro.multiplusUsuariosPorLogin= Se encontró más de un usuario con el mismo inicio de sesión, comuníquese con el administrador del sistema.
|
||||||
|
winCambiaContrasena.erro.emailNaoCadastrado= Correo electrónico del usuario no registrado, contacte al administrador del sistema.
|
||||||
|
winCambiaContrasena.MSG.EmailRecuperacaoSenhaEnviado=Se envió un enlace de recuperación de contraseña al correo electrónico registrado en el inicio de sesión del usuario.
|
||||||
|
winCambiaContrasena.erro.configuracaoConstante= Es necesario configurar constantes de envío de correo electrónico para la recuperación de contraseña. Póngase en contacto con el administrador de su sistema.
|
||||||
|
winCambiaContrasena.erro.linkInvalido=Enlace no válido.
|
||||||
|
winCambiaContrasena.btnLinkInvalidoFecharTela= Enlace no válido. Cerrar pantalla.
|
||||||
|
|
|
@ -9961,3 +9961,17 @@ winMovimentacionBilhetesPuntoVenta.numSerie.label = Série
|
||||||
winMovimentacionBilhetesPuntoVenta.origem.label = Origine
|
winMovimentacionBilhetesPuntoVenta.origem.label = Origine
|
||||||
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
||||||
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Nature
|
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Nature
|
||||||
|
|
||||||
|
editarUsuarioController.tabel.restaurarSenha= Réinitialisation du mot de passe
|
||||||
|
editarUsuarioController.tabel.numeroMatricula= Inscription
|
||||||
|
editarUsuarioController.tabel.dataNascimento= Date de naissance
|
||||||
|
editarUsuarioController.tabel.sobrenomePaterno= Nom paternel
|
||||||
|
editarUsuarioController.MSG.necessarioPreencherDadosRecuperacao=Toutes les données doivent être renseignées pour utiliser la récupération de mot de passe.
|
||||||
|
winCambiaContrasena.erro.loginNaoEncontrado= Aucun utilisateur avec le login donné n'a été trouvé.
|
||||||
|
winCambiaContrasena.erro.multiplusUsuariosPorLogin= Plusieurs utilisateurs ont été trouvés avec le même identifiant, contactez votre administrateur système.
|
||||||
|
winCambiaContrasena.erro.emailNaoCadastrado= E-mail de l'utilisateur non enregistré, contactez l'administrateur système.
|
||||||
|
winCambiaContrasena.MSG.EmailRecuperacaoSenhaEnviado=Un lien de récupération de mot de passe a été envoyé à l'e-mail enregistré dans la connexion de l'utilisateur.
|
||||||
|
winCambiaContrasena.erro.configuracaoConstante= Il est nécessaire de configurer les constantes d'envoi d'e-mails pour la récupération du mot de passe. Contactez votre administrateur système.
|
||||||
|
winCambiaContrasena.erro.linkInvalido=Lien invalide.
|
||||||
|
winCambiaContrasena.btnLinkInvalidoFecharTela= Lien invalide. Fermez l'écran.
|
||||||
|
|
||||||
|
|
|
@ -9966,3 +9966,16 @@ winMovimentacionBilhetesPuntoVenta.numSerie.label = Série
|
||||||
winMovimentacionBilhetesPuntoVenta.origem.label = Origem
|
winMovimentacionBilhetesPuntoVenta.origem.label = Origem
|
||||||
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
winMovimentacionBilhetesPuntoVenta.puntoventa.label = Ag.
|
||||||
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Natureza
|
winMovimentacionBilhetesPuntoVenta.tipoMovimentacion.label = Natureza
|
||||||
|
|
||||||
|
editarUsuarioController.tabel.restaurarSenha= Restauração de Senha
|
||||||
|
editarUsuarioController.tabel.numeroMatricula= Matrícula
|
||||||
|
editarUsuarioController.tabel.dataNascimento= Data Nascimento
|
||||||
|
editarUsuarioController.tabel.sobrenomePaterno= Sobrenome Paterno
|
||||||
|
editarUsuarioController.MSG.necessarioPreencherDadosRecuperacao=Necessário preencher todos os dados para utilização da recuperação de senha.
|
||||||
|
winCambiaContrasena.erro.loginNaoEncontrado= Não foi encontrado nenhum usuário com o login informado.
|
||||||
|
winCambiaContrasena.erro.multiplusUsuariosPorLogin= Foi encontrado mais de um usuário com o mesmo login, contacte o administrador do sistema.
|
||||||
|
winCambiaContrasena.erro.emailNaoCadastrado= E-mail do usuário não cadastrado, contacte o adaministrado do sistema.
|
||||||
|
winCambiaContrasena.MSG.EmailRecuperacaoSenhaEnviado=Foi enviado um link de recuperação de senha para o e-mail cadastrado no login do usuário.
|
||||||
|
winCambiaContrasena.erro.configuracaoConstante= Necessário configurar constantes de envio de e-mail para a recuperação de senha. Contacte o administrador do sistema.
|
||||||
|
winCambiaContrasena.erro.linkInvalido=Link inválido.
|
||||||
|
winCambiaContrasena.btnLinkInvalidoFecharTela= Link Inválido. Fechar tela.
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<tab id="tabUbicacion" label="${c:l('editarUsuarioController.tabel.ubicacion')}" />
|
<tab id="tabUbicacion" label="${c:l('editarUsuarioController.tabel.ubicacion')}" />
|
||||||
<tab id="tabEmpresa" label="${c:l('editarUsuarioController.tabel.empresa')}" />
|
<tab id="tabEmpresa" label="${c:l('editarUsuarioController.tabel.empresa')}" />
|
||||||
<tab id="tabInternet" label="${c:l('editarUsuarioController.tabel.internet')}" />
|
<tab id="tabInternet" label="${c:l('editarUsuarioController.tabel.internet')}" />
|
||||||
|
<tab id="tabRestaurarSenha" label="${c:l('editarUsuarioController.tabel.restaurarSenha')}" />
|
||||||
</tabs>
|
</tabs>
|
||||||
<tabpanels>
|
<tabpanels>
|
||||||
<tabpanel id="tbUsuario">
|
<tabpanel id="tbUsuario">
|
||||||
|
@ -259,6 +260,45 @@
|
||||||
</grid>
|
</grid>
|
||||||
</tabpanel>
|
</tabpanel>
|
||||||
|
|
||||||
|
<tabpanel id="tbRestaurarSenha">
|
||||||
|
<grid fixedLayout="true">
|
||||||
|
<columns>
|
||||||
|
<column width="40%" />
|
||||||
|
<column width="60%" />
|
||||||
|
</columns>
|
||||||
|
|
||||||
|
<rows>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<label value="${c:l('editarUsuarioController.tabel.restaurarSenha')}" />
|
||||||
|
<checkbox id="chkIndRecuperarSenha" checked="@{winEditarUsuario$composer.usuario.indRecuperarSenha}" />
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<label value="${c:l('editarUsuarioController.tabel.numeroMatricula')}" />
|
||||||
|
<textbox id="txtMatricula" maxlength="30"
|
||||||
|
value="@{winEditarUsuario$composer.usuario.matricula}"
|
||||||
|
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<label value="${c:l('editarUsuarioController.tabel.dataNascimento')}" />
|
||||||
|
<datebox id="dataNascimento" width="120px" mold="rounded"
|
||||||
|
value="@{winEditarUsuario$composer.usuario.dataNascimento}" />
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<label value="${c:l('editarUsuarioController.tabel.sobrenomePaterno')}" />
|
||||||
|
<textbox id="txtSobrenomePaterno" maxlength="30"
|
||||||
|
value="@{winEditarUsuario$composer.usuario.nombpaternoRecuperacao}"
|
||||||
|
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
|
||||||
|
</row>
|
||||||
|
|
||||||
|
</rows>
|
||||||
|
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
|
||||||
</tabpanels>
|
</tabpanels>
|
||||||
</tabbox>
|
</tabbox>
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:w="http://www.zkoss.org/2005/zk/client"
|
xmlns:w="http://www.zkoss.org/2005/zk/client"
|
||||||
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">
|
xsi:schemaLocation="http://www.zkoss.org/2005/zul">
|
||||||
|
|
||||||
<window id="winLogin" title="${c:l('winLogin.title')}"
|
<window id="winLogin" title="${c:l('winLogin.title')}" apply="${loginController}"
|
||||||
border="normal" width="400px" closable="false" position="center"
|
border="normal" width="400px" closable="false" position="center"
|
||||||
mode="overlapped" onCreate="u.focus()">
|
mode="overlapped" onCreate="u.focus()">
|
||||||
|
|
||||||
|
@ -32,13 +32,15 @@
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
<image src="/gui/img/pass24_4.png" />
|
<image src="/gui/img/pass24_4.png" />
|
||||||
<textbox id="p" type="password"
|
<textbox id="p" type="password"
|
||||||
name="j_password" constraint="no empty" />
|
name="j_password" />
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
<row spans="2" align="center">
|
<row spans="2" align="center">
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
<h:input type="button" name="btnAcessar"
|
<h:input type="button" name="btnAcessar"
|
||||||
value="${c:l('winLogin.btnAcessar')}" w:onClick="validate()" />
|
value="${c:l('winLogin.btnAcessar')}" w:onClick="validate()" />
|
||||||
|
|
||||||
|
<button id="btnRecuperarSenha" label="Recuperar Senha" />
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<?page contentType="text/html;charset=UTF-8"?>
|
||||||
|
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
|
||||||
|
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winRecuperarSenha"?>
|
||||||
|
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
|
||||||
|
|
||||||
|
<zk xmlns="http://www.zkoss.org/2005/zul"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:w="http://www.zkoss.org/2005/zk/client"
|
||||||
|
xsi:schemaLocation="http://www.zkoss.org/2005/zul">
|
||||||
|
|
||||||
|
<window id="winRecuperarSenha" title="${c:l('winCambiaContrasena.title')}" border="normal"
|
||||||
|
apply="${recuperarSenhaController}" width="410px" closable="false" position="center" mode="overlapped">
|
||||||
|
|
||||||
|
<grid>
|
||||||
|
<rows>
|
||||||
|
<row align="left">
|
||||||
|
<label value="${c:l('winCambiaContrasena.lblUsuario')}" />
|
||||||
|
<hbox align="center">
|
||||||
|
<image src="/gui/img/user24.png" />
|
||||||
|
<textbox id="txtUser" name="j_username"
|
||||||
|
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row align="left">
|
||||||
|
<label value="${c:l('winCambiaContrasena.lblNovaSenha')}" />
|
||||||
|
<hbox align="center">
|
||||||
|
<image src="/gui/img/pass24_4.png" />
|
||||||
|
<textbox id="txtNewPassword" type="password" name="j_password" constraint="no empty" />
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row align="left">
|
||||||
|
<label value="${c:l('winCambiaContrasena.lblConfirmaSenha')}" />
|
||||||
|
<hbox align="center">
|
||||||
|
<image src="/gui/img/pass24_4.png" />
|
||||||
|
<textbox id="txtConfirmPassword" type="password" name="j_password" constraint="no empty" />
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row spans="2" align="center">
|
||||||
|
<hbox align="center">
|
||||||
|
<button id="btnSalvar" height="18" image="/gui/img/save.png" width="90px"
|
||||||
|
tooltiptext="${c:l('winCambiaContrasena.btnAcessar')}" label="${c:l('winCambiaContrasena.btnAcessar')}"/>
|
||||||
|
|
||||||
|
<button id="btnFecharTela" height="18"
|
||||||
|
label="${c:l('winCambiaContrasena.btnLinkInvalidoFecharTela')}"/>
|
||||||
|
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
</window>
|
||||||
|
</zk>
|
Loading…
Reference in New Issue