diff --git a/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java b/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java index 57a20716a7a0a113445bb8f54f6321b25a60d9e3..7fcd49d3a7afc1cf58b49cb8666a2d3d4f06e846 100644 --- a/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java +++ b/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java @@ -25,10 +25,12 @@ import lcsb.mapviewer.common.FrameworkVersion; import lcsb.mapviewer.model.user.ConfigurationElementType; import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.model.user.User; +import lcsb.mapviewer.services.UserAccessException; import lcsb.mapviewer.services.interfaces.IConfigurationService; import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.services.interfaces.IUserService; import lcsb.mapviewer.services.view.ConfigurationView; +import lcsb.mapviewer.services.view.ProjectView; /** * Bean used for managing configuration (configurable parameters of the system). @@ -137,6 +139,16 @@ public class ConfigurationBean extends AbstractManagedBean implements Serializab if ((DEFAULT_MODEL_PROPERTY).equals(arg0.getPropertyName())) { if (!projectService.projectExists((String) arg0.getNewValue())) { throw new PropertyVetoException("Project " + arg0.getNewValue() + " doesn't exist", arg0); + } else { + ProjectView view; + try { + view = projectService.getProjectViewByProjectId((String) arg0.getNewValue(), userBean.getAuthenticationToken()); + } catch (UserAccessException e) { + throw new PropertyVetoException("You have no privilege to perform this operation", arg0); + } + if (!view.getStatus().equalsIgnoreCase("OK")) { + throw new PropertyVetoException("Project " + arg0.getNewValue() + " is invalid. Project status: " + view.getStatus(), arg0); + } } } } @@ -477,7 +489,7 @@ public class ConfigurationBean extends AbstractManagedBean implements Serializab * representing overlay element with negative values. * * @return {@link ConfigurationElementType#MIN_COLOR_VAL color} used for - * representing overlay element with negative values + * representing overlay element with negative values */ public String getMinColor() { return valueMap.get(ConfigurationElementType.MIN_COLOR_VAL); @@ -488,7 +500,7 @@ public class ConfigurationBean extends AbstractManagedBean implements Serializab * representing overlay element with negative values. * * @return {@link ConfigurationElementType#MIN_COLOR_VAL color} used for - * representing overlay element with positive values + * representing overlay element with positive values */ public String getMaxColor() { return valueMap.get(ConfigurationElementType.MAX_COLOR_VAL);