diff --git a/1.sources/MyHealth/docroot/header.xhtml b/1.sources/MyHealth/docroot/header.xhtml index 1f3cc9f..093c715 100644 --- a/1.sources/MyHealth/docroot/header.xhtml +++ b/1.sources/MyHealth/docroot/header.xhtml @@ -71,7 +71,7 @@ - + diff --git a/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml b/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml index eb7f7cf..8d3ed5e 100644 --- a/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml +++ b/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml @@ -93,7 +93,16 @@
- + +
+
+ +
+
+ +
+
+
userTypes; private List userTypes; @@ -97,6 +98,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.surname = pat.getName(); this.nif = pat.getNif(); this.email = pat.getEmail(); + this.currentPassword = pat.getPassword(); break; case SPECIALIST_DOCTOR: this.medicalSpecialitiesList = this.getRemoteManagerSystemAdmin().listAllMedicalSpecialities(); @@ -106,6 +108,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.surname = sd.getName(); this.nif = sd.getNif(); this.email = sd.getEmail(); + this.currentPassword = sd.getPassword(); this.medicalSpecialty = sd.getMedicalSpecialty(); break; case FAMILY_DOCTOR: @@ -116,6 +119,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.surname = fd.getName(); this.nif = fd.getNif(); this.email = fd.getEmail(); + this.currentPassword = fd.getPassword(); this.primaryHealthCareCenter = fd.getPrimaryHealthCareCenter(); break; case ADMINISTRADOR: @@ -227,6 +231,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable public void saveData() { int error = 0; + boolean changePassword = (this.oldPassword != null && this.oldPassword.equals("") == false) || (this.password != null && this.password.equals("") == false); if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) { this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un centro de atención primaria."); @@ -240,6 +245,16 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.addFacesMessage(FacesMessage.SEVERITY_WARN, "El NIF indicado no es válido", "Por favor, especifique un NIF válido."); error++; } + if (changePassword == true) { + // el usuario queire cambiar el password Comprobamos que el password especificado coincide con el guardado + if (this.password == null || this.password.length() < 4) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Nueva contraseña incorrectra", "Su nueva contraseña debe tener al menos 4 caracteres."); + error++; + } else if (HashUtils.hashMD5(this.oldPassword).equals(this.currentPassword) == false ) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Contraseña actual incorrecta", "Su actual contraseña es incorrecta. Por favor, especifique su contraseña actual."); + error++; + } + } if (error == 0) { try { @@ -260,26 +275,22 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable break; case ADMINISTRADOR: - throw new NotSupportedException("No se soporta la edición de perfiles de administrador."); + throw new NotSupportedException("No se soporta la edición de perfiles de tipo administrador."); } - this.registered = true; - this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos guardados", "Los datos de su perfil se han guardado correctamente en la base de datos."); - + if (changePassword == true) { + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Contraseña actualizada", "Su contraseña ha sido actualizada correctamente."); + this.password = ""; + this.oldPassword = ""; + } + + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de su perfil se han guardado correctamente."); } catch (Exception e) { this.manageException(e); } } } - public String getPasswordRepeat() { - return passwordRepeat; - } - - public void setPasswordRepeat(String passwordRepeat) { - this.passwordRepeat = passwordRepeat; - } - public String getUserType() { return userType; } @@ -304,8 +315,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.primaryHealthCareCenter = primaryHealthCareCenter; } - public boolean isRegistered() { - return registered; + public String getOldPassword() { + return oldPassword; + } + + public void setOldPassword(String oldPassword) { + this.oldPassword = oldPassword; } }