[Bug #1090] Fixed hidden warnings if user is disabled.

FEA: ItEr74S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2011-06-16 14:38:10 +02:00
parent 37994c73b7
commit 64c12cf941
5 changed files with 22 additions and 64 deletions

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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<MandatoryUser> 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<UserRole>(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;
}
}
}

View file

@ -29,25 +29,6 @@
<?component name="list" inline="true" macroURI="_listUsers.zul"?>
<?component name="edition" inline="true" macroURI="_editUser.zul"?>
<zk>
<script type="text/JavaScript">
<![CDATA[
function showOrHideWarnings(displayA, displayO, user, displayU) {
if(displayA != "null"){
var warningAdmin = document.getElementById ("warningDefaultPasswdadmin");
warningAdmin.style["display"] = displayA;
}
var warningOthers = document.getElementById ("warningDefaultPasswdOthers");
warningOthers.style["display"] = displayO;
if(displayU != "null" && user != "null"){
var warningUser = document.getElementById ("warningDefaultPasswd"+user);
warningUser.style["display"] = displayU;
}
}
]]>
</script>
<window self="@{define(content)}"
apply="org.navalplanner.web.users.UserCRUDController">
<vbox id="messagesContainer"></vbox>