diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/IUserModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/IUserModel.java index 7a62c2f2b..eb30d6fd9 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/IUserModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/IUserModel.java @@ -27,6 +27,7 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.users.entities.Profile; import org.navalplanner.business.users.entities.User; import org.navalplanner.business.users.entities.UserRole; +import org.navalplanner.web.users.bootstrap.MandatoryUser; /** * Model for UI operations related to {@link User} @@ -122,4 +123,6 @@ public interface IUserModel { String getClearNewPassword(); + boolean hasChangedDefaultPasswordOrDisabled(MandatoryUser admin); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserCRUDController.java index 9e05019f0..0236466cf 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserCRUDController.java @@ -38,8 +38,10 @@ import org.navalplanner.web.common.Util; import org.navalplanner.web.common.components.Autocomplete; import org.navalplanner.web.common.entrypoints.EntryPointsHandler; import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry; +import org.navalplanner.web.users.bootstrap.MandatoryUser; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.WrongValueException; +import org.zkoss.zk.ui.util.Clients; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Combobox; import org.zkoss.zul.Comboitem; @@ -170,6 +172,7 @@ public class UserCRUDController extends GenericForwardComposer implements userModel.confirmSave(); messagesForUser.showMessage(Level.INFO, _("User saved")); + showOrHideDefaultPasswordWarnings(); return true; } catch (ValidationException e) { messagesForUser.showInvalidValues(e); @@ -177,6 +180,26 @@ public class UserCRUDController extends GenericForwardComposer implements return false; } + /** + * It calls a JavaScript method to show or hide the default password + * warnings if the user has changed the password or has been disabled + */ + private void showOrHideDefaultPasswordWarnings() { + boolean adminNotDefaultPassword = userModel + .hasChangedDefaultPasswordOrDisabled(MandatoryUser.ADMIN); + boolean userNotDefaultPassword = userModel + .hasChangedDefaultPasswordOrDisabled(MandatoryUser.USER); + boolean wsreaderNotDefaultPassword = userModel + .hasChangedDefaultPasswordOrDisabled(MandatoryUser.WSREADER); + boolean wswriterNotDefaultPassword = userModel + .hasChangedDefaultPasswordOrDisabled(MandatoryUser.WSWRITER); + + Clients.evalJavaScript("showOrHideDefaultPasswordWarnings(" + + adminNotDefaultPassword + ", " + userNotDefaultPassword + + ", " + wsreaderNotDefaultPassword + ", " + + wswriterNotDefaultPassword + ");"); + } + public User getUser() { return userModel.getUser(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java index b907cda7e..3e2a2b4b7 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java @@ -248,4 +248,11 @@ public class UserModel implements IUserModel { public String getClearNewPassword() { return clearNewPassword; } + + @Override + @Transactional(readOnly = true) + public boolean hasChangedDefaultPasswordOrDisabled(MandatoryUser user) { + return user.hasChangedDefaultPasswordOrDisabled(); + } + } diff --git a/navalplanner-webapp/src/main/webapp/users/users.zul b/navalplanner-webapp/src/main/webapp/users/users.zul index 2e76c893d..52f8475b2 100644 --- a/navalplanner-webapp/src/main/webapp/users/users.zul +++ b/navalplanner-webapp/src/main/webapp/users/users.zul @@ -29,6 +29,37 @@ + + +