diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java index 8ea725770..485fba70c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java @@ -36,7 +36,6 @@ import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.common.Registry; import org.navalplanner.business.common.daos.IConfigurationDAO; -import org.navalplanner.business.common.entities.Configuration; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.TaskSource; @@ -458,7 +457,8 @@ public class TemplateModel implements ITemplateModel { @Override @Transactional(readOnly = true) public boolean hasChangedDefaultPassword(MandatoryUser user) { - return user.hasChangedDefaultPassword(configurationDAO.getConfiguration()); + return user.hasChangedDefaultPasswordOrDisabled(configurationDAO + .getConfiguration()); } @Override 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 0b0386064..9e05019f0 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 @@ -36,8 +36,8 @@ import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; import org.navalplanner.web.common.Util; import org.navalplanner.web.common.components.Autocomplete; -import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry; import org.navalplanner.web.common.entrypoints.EntryPointsHandler; +import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.util.GenericForwardComposer; 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 29eb82d66..6928dd265 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 @@ -42,7 +42,6 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.zkoss.zk.ui.util.Clients; /** * Model for UI operations related to {@link User} @@ -147,44 +146,6 @@ public class UserModel implements IUserModel { // save the field changedDefaultAdminPassword in configuration. Registry.getConfigurationDAO().saveChangedDefaultPassword( user.getLoginName(), changedPasswd); - - String displayA = null; - String displayO = null; - String displayU = null; - String login = null; - - // show or hide the warning - displayO = isWarningDefaultPasswdOthersVisible(); - if (user.equals(MandatoryUser.ADMIN)) { - displayA = isWarningDefaultPasswdAdminVisible(user,changedPasswd); - }else{ - displayU = isWarningDefaultPasswordOtherUser(changedPasswd, - displayO); - login = user.getLoginName(); - } - Clients.evalJavaScript("showOrHideWarnings('" + displayA + "', '" - + displayO + "', '" + login + "', '" + displayU + "');"); - } - - private String isWarningDefaultPasswordOtherUser(boolean changedPasswd, - String displayO) { - if (displayO.equals("inline")) { - return changedPasswd ? "none" : "inline"; - } - return null; - } - - private String isWarningDefaultPasswdAdminVisible(MandatoryUser user, boolean changedPasswd){ - if (user.equals(MandatoryUser.ADMIN)) { - return changedPasswd ? "none" : "inline"; - } - return null; - } - - private String isWarningDefaultPasswdOthersVisible() { - return MandatoryUser - .adminChangedAndSomeOtherNotChanged(configurationDAO - .getConfiguration()) ? "inline" : "none"; } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/bootstrap/MandatoryUser.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/bootstrap/MandatoryUser.java index 9c1207819..62f8ed8a8 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/bootstrap/MandatoryUser.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/bootstrap/MandatoryUser.java @@ -28,7 +28,9 @@ import java.util.EnumSet; import java.util.HashSet; import java.util.Set; +import org.navalplanner.business.common.Registry; import org.navalplanner.business.common.entities.Configuration; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.users.entities.UserRole; /** @@ -69,7 +71,7 @@ public enum MandatoryUser { public static boolean adminChangedAndSomeOtherNotChanged( Configuration configuration) { - return ADMIN.hasChangedDefaultPassword(configuration) + return ADMIN.hasChangedDefaultPasswordOrDisabled(configuration) && someKeepsDefaultPassword(configuration, allExcept(ADMIN)); } @@ -78,7 +80,7 @@ public enum MandatoryUser { Configuration configuration, Collection mandatoryUsers) { for (MandatoryUser each : mandatoryUsers) { - if (!each.hasChangedDefaultPassword(configuration)) { + if (!each.hasChangedDefaultPasswordOrDisabled(configuration)) { return true; } } @@ -91,7 +93,12 @@ public enum MandatoryUser { this.initialRoles = new HashSet(initialUserRoles); } - public abstract boolean hasChangedDefaultPassword( + public boolean hasChangedDefaultPasswordOrDisabled( + Configuration configuration) { + return isDisabled() || hasChangedDefaultPassword(configuration); + } + + protected abstract boolean hasChangedDefaultPassword( Configuration configuration); public String getLoginName() { @@ -110,4 +117,13 @@ public enum MandatoryUser { return EnumSet.complementOf(EnumSet.of(mandatoryUser)); } + public boolean isDisabled() { + try { + return Registry.getUserDAO().findByLoginName(getLoginName()) + .isDisabled(); + } catch (InstanceNotFoundException e) { + return true; + } + } + } diff --git a/navalplanner-webapp/src/main/webapp/users/users.zul b/navalplanner-webapp/src/main/webapp/users/users.zul index 1311bd6b7..2e76c893d 100644 --- a/navalplanner-webapp/src/main/webapp/users/users.zul +++ b/navalplanner-webapp/src/main/webapp/users/users.zul @@ -29,25 +29,6 @@ - -