public ChangePasswordPanel() { txtOldPassword = new PasswordTextField("oldPassword", new PropertyModel<String>(this, "oldPassword")); txtOldPassword.setRequired(true); txtOldPassword.setLabel(Model.of("Parola veche")); addWithFeedback(txtOldPassword); txtNewPassword = new PasswordTextField("newPassword", new PropertyModel<String>(this, "newPassword")); txtNewPassword.setRequired(true); txtNewPassword.setLabel(Model.of("Parola noua")); txtNewPassword.add(StringValidator.minimumLength(6)); addWithFeedback(txtNewPassword); txtRetypedPassword = new PasswordTextField( "retypedPassword", new PropertyModel<String>(this, "retypedPassword")); txtRetypedPassword.setRequired(true); txtRetypedPassword.setLabel(Model.of("Parola reintrodusa")); addWithFeedback(txtRetypedPassword); }
public PasswordPage() { Usuario usuario = this.daoService.getUsuario(SecurityUtils.getSubject().getPrincipal().toString()); final Form<Usuario> form = new Form<Usuario>("form", new CompoundPropertyModel<Usuario>(usuario)); this.add(form); final FeedbackPanel feedBackPanel = new FeedbackPanel("feedBackPanel"); feedBackPanel.setOutputMarkupId(true); form.add(feedBackPanel); Label nombreUsuario = new Label("nombreUsuario", usuario.getNombre()); form.add(nombreUsuario); final PasswordTextField passActual = new PasswordTextField("contraseniaActual", new Model<String>(new String())); passActual.setLabel(Model.of("Password actual")); passActual.add(new StringValidator(0, 30)); passActual.setRequired(true); passActual.add( new IValidator<String>() { @Override public void validate(IValidatable<String> validatable) { Boolean correcto = daoService.validarPassword(form.getModelObject(), validatable.getValue()); if (!correcto) { error(validatable, "La password ingresada en 'Password actual' no es correcta."); } } private void error(IValidatable<String> validatable, String errorKey) { ValidationError error = new ValidationError(); error.addKey(getClass().getSimpleName() + "." + errorKey); error.setMessage(errorKey); validatable.error(error); } }); form.add(passActual); final PasswordTextField password = new PasswordTextField("password"); password.setLabel(Model.of("Nueva Password")); password.add(new StringValidator(0, 30)); password.setRequired(true); form.add(password); final PasswordTextField passConfirmacion = new PasswordTextField("contraseniaConfirmacion", new Model<String>(new String())); passConfirmacion.setLabel(Model.of("Confirmaci\363n")); passConfirmacion.setRequired(true); passConfirmacion.add(new StringValidator(0, 30)); passConfirmacion.add( new IValidator<String>() { @Override public void validate(IValidatable<String> validatable) { if (!validatable.getValue().equals(password.getValue())) { error( validatable, "Las passwords ingresadas en 'Nueva Password' y 'Confimaci\363n' deben ser iguales."); } } private void error(IValidatable<String> validatable, String errorKey) { ValidationError error = new ValidationError(); error.addKey(getClass().getSimpleName() + "." + errorKey); error.setMessage(errorKey); validatable.error(error); } }); form.add(passConfirmacion); final SelectModalWindow selectModalWindow = new SelectModalWindow("modalWindow") { public void onCancel(AjaxRequestTarget target) { close(target); } }; form.add(selectModalWindow); AjaxButton submit = new AjaxButton("submit", form) { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { Usuario usuario = (Usuario) form.getModelObject(); String nuevaPassword = usuario.getPassword(); Boolean estaHabilitado = PasswordPage.this.daoService.getPermisoCambiarPassword(usuario.getNombreLogin()); if (estaHabilitado) { PasswordPage.this.daoService.setPassword(usuario.getNombreLogin(), nuevaPassword); selectModalWindow.show(target); } else { this.error("No tiene permiso para cambiar su password"); } target.add(feedBackPanel); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedBackPanel); } }; form.add(submit); }