diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java index 721359a06c2554abf884f7d0d582dc5ed0f3e665..13aaba33f0f3399a6a1550cd4608f5fbe65afee9 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java @@ -170,6 +170,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } + @SessionScoped class ExperimentPoliciesTable extends DataTableController<ExperimentPolicy> { @Override @@ -188,6 +189,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } + @SessionScoped class ExperimentPoliciesTypeTable extends DataTableController<ExperimentPolicyType> { @Override @@ -211,8 +213,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper for (PolicyType type : list) { experimentPolicyType = new ExperimentPolicyType(type); newList.add(experimentPolicyType); + +// policy = getCurrent().getPolicyForType(type); +// experimentPolicyType.setPolicy(policy); + policy = getCurrent().getPolicyForType(type.getId()); experimentPolicyType.setPolicy(policy); + } return newList; } @@ -223,6 +230,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } + @SessionScoped class ExperimentUsersTable extends DataTableController<ExperimentUser> { @Override @@ -262,6 +270,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } + @SessionScoped class NoExperimentUsersTypeTable extends DataTableController<UserInfo> { @Override @@ -314,7 +323,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ExperimentPolicy experimentPolicy = new ExperimentPolicy(); experimentPolicy.setExperiment(newExperiment); experimentPolicy.setPolicyType(policyType); - experimentPolicy.setPolicyValue(policyType.getDefaultPolicyValue()); +// experimentPolicy.setPolicyValue(policyType.getDefaultPolicyValue()); newExperiment.getExperimentPolicyList().add(experimentPolicy); } return newExperiment; @@ -578,34 +587,49 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } - public boolean canEditExperiment(int experimentId) { + public boolean canEditExperiment(Experiment experiment) { + UserInfo logged = (UserInfo) SessionUtility.getUser(); + if (logged == null) { + return false; + } + if (experiment == null) { + return false; + } if (!initialized) { initializeTables(); } // user that is Manager or PI can edit experiment int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); int piRoleId = experimentRoles.get(RoleTypeName.PI).getId(); - UserInfo logged = (UserInfo) SessionUtility.getUser(); - return (logged.getExperimetRole(managerRoleId, experimentId) != null) || (logged.getExperimetRole(piRoleId, experimentId) != null); + return (logged.getExperimetRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimetRole(piRoleId, experiment.getId()) != null); } public boolean isRestricted() { + UserInfo logged = (UserInfo) SessionUtility.getUser(); + if (logged == null) { + return false; + } if (current == null) { return true; } int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); int piRoleId = experimentRoles.get(RoleTypeName.PI).getId(); - UserInfo logged = (UserInfo) SessionUtility.getUser(); return (logged.getExperimetRole(managerRoleId, current.getId()) == null) && (logged.getExperimetRole(piRoleId, current.getId()) == null); } - public boolean canDeleteExperiment(int experimentId) { + public boolean canDeleteExperiment(Experiment experiment) { + UserInfo logged = (UserInfo) SessionUtility.getUser(); + if (logged == null) { + return false; + } + if (experiment == null) { + return false; + } if (!initialized) { initializeTables(); } int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); - UserInfo logged = (UserInfo) SessionUtility.getUser(); - return logged.getExperimetRole(managerRoleId, experimentId) != null; + return logged.getExperimetRole(managerRoleId, experiment.getId()) != null; } public boolean canAddManager() { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java index 37e692f081b36b9d840d0af23fca86184961fbed..2376ba0cdbebad02b6622eca84f528f2046ea703 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java @@ -8,7 +8,6 @@ package gov.anl.aps.dm.portal.controllers; import gov.anl.aps.dm.portal.constants.RoleTypeName; import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade; import gov.anl.aps.dm.portal.model.beans.UserInfoFacade; -import gov.anl.aps.dm.portal.model.entities.RoleType; import gov.anl.aps.dm.portal.model.entities.UserInfo; import gov.anl.aps.dm.portal.utilities.LdapUtility; import gov.anl.aps.dm.portal.utilities.SessionUtility; diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java index d29170cd1f0fcd28617b25d27da0fb3d8f884eea..7e7600d739ea4d9a43e1e80f0080e45a49e6f679 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java @@ -74,12 +74,12 @@ public class PolicyTypeController extends CrudEntityController<PolicyType, Polic logger.debug("Inserting new experiment type " + policyType.getName()); } - @Override - public void prepareEntityUpdate(PolicyType policyType) throws DmPortalException { - if ((policyType.getName() == null) || (policyType.getName().length() == 0)) { - throw new MissingProperty("Name is missing."); - } - } +// @Override +// public void prepareEntityUpdate(PolicyType policyType) throws DmPortalException { +// if ((policyType.getName() == null) || (policyType.getName().length() == 0)) { +// throw new MissingProperty("Name is missing."); +// } +// } @Override protected String getObjectAlreadyExistMessage(PolicyType policyType) { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java index 8e3078a5157fe858ea79567eb89656b1af59aa8f..6f06d2955b0a3d9111ae0c259204036b27425021 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java @@ -122,6 +122,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF if (!initialized) { initializeRoleTypes(); } + userExperiments.clear(); logger.debug("converting UserExperiments "); Collection<RoleType> roleTypes; roleTypes = experimentRoles.values(); @@ -136,7 +137,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF experimentUser.setIsInRole(roleType, inRole); } } - return new ArrayList<>(userExperiments); + return userExperiments; } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java index 06f757a8a21fb333e7bad40c8f561d78eae3efe6..76f89cbb11bebd1b254e02c214baad5077b3cb06 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java @@ -112,10 +112,7 @@ public class AllowedPolicyValue extends CloneableEntity return false; } AllowedPolicyValue other = (AllowedPolicyValue) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java index e03a57fb73df53af616577d276c54f81ac802dec..185c99bc2e2b276ce0bffb76186c658d75644631 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java @@ -152,10 +152,7 @@ public class DataFolder extends CloneableEntity return false; } DataFolder other = (DataFolder) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java index 9fd9b0a59ac242224f264b3ebe553293638b28d8..410cbb63ec9c9899c6629b8a7c02ea6100a8e839 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java @@ -110,10 +110,7 @@ public class DataFolderPermission extends CloneableEntity return false; } DataFolderPermission other = (DataFolderPermission) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java index 0e2e2868d2af30ac7dc6f48ca20531b58a58c3bd..6d63ee0f8a3bd1a79c8277f0189d86e50b648412 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java @@ -161,6 +161,16 @@ public class Experiment extends CloneableEntity this.experimentType = experimentType; } + +// public ExperimentPolicy getPolicyForType(PolicyType type) { +// for (ExperimentPolicy experimentPolicy : experimentPolicyList) { +// if (experimentPolicy.getPolicyType().getId() == type.getId()) { +// return experimentPolicy; +// } +// } +// return null; +// } + public ExperimentPolicy getPolicyForType(int typeId) { for (ExperimentPolicy experimentPolicy : experimentPolicyList) { if (experimentPolicy.getPolicyType().getId() == typeId) { @@ -170,6 +180,7 @@ public class Experiment extends CloneableEntity return null; } + @Override public int hashCode() { int hash = 0; @@ -184,10 +195,7 @@ public class Experiment extends CloneableEntity return false; } Experiment other = (Experiment) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicy.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicy.java index 48a38100c8386e42d03400a3f83cd6f659570eb3..c60480a98afb8ec17e13078ea623a88ae6d2d4bd 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicy.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicy.java @@ -17,7 +17,6 @@ import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; @@ -120,10 +119,7 @@ public class ExperimentPolicy extends CloneableEntity return false; } ExperimentPolicy other = (ExperimentPolicy) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java index a2ac97ff8f062e7a797db10fdf59ca92b4d47922..dd204831afacf42103aaf87816b23af874502a0e 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java @@ -124,10 +124,7 @@ public class ExperimentType extends CloneableEntity return false; } ExperimentType other = (ExperimentType) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java index 5183030e708b11912cb432f5152b3a150cd7ff02..a664fbf94e632b7e8c5a54a99df7435a00f86bf4 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java @@ -14,9 +14,12 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; +import javax.persistence.OneToOne; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @@ -56,8 +59,9 @@ public class PolicyType extends CloneableEntity @Column(name = "handler_name") private String handlerName; @Size(max = 2147483647) - @Column(name = "default_policy_value") - private String defaultPolicyValue; + @JoinColumn(name = "default_policy_value", referencedColumnName = "policy_value") + @OneToOne + private AllowedPolicyValue defaultPolicyValue; @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyType") private List<ExperimentPolicy> experimentPolicyList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyType") @@ -109,11 +113,11 @@ public class PolicyType extends CloneableEntity this.handlerName = handlerName; } - public String getDefaultPolicyValue() { + public AllowedPolicyValue getDefaultPolicyValue() { return defaultPolicyValue; } - public void setDefaultPolicyValue(String defaultPolicyValue) { + public void setDefaultPolicyValue(AllowedPolicyValue defaultPolicyValue) { this.defaultPolicyValue = defaultPolicyValue; } @@ -158,10 +162,7 @@ public class PolicyType extends CloneableEntity return false; } PolicyType other = (PolicyType) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java index c0fed6b261bdf3e84dd5736dfdd5d10d9f6eb657..bf68b2dd061f19009e744390a2c8fe9d31e478bc 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java @@ -164,10 +164,7 @@ public class RoleType extends CloneableEntity return false; } RoleType other = (RoleType) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java index 4c9d8465f480c0c61c5efae238c47b408644ffd6..ec9e90eb77846debc463c88e7b8d64c1cc46603a 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java @@ -146,10 +146,7 @@ public class SettingType extends CloneableEntity return false; } SettingType other = (SettingType) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicy.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicy.java index 6e9757c9d40529c1910ed1b29a3ee17894b44e30..e966180b587e44b4752383a2bd07e23cbe2e6805 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicy.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicy.java @@ -119,10 +119,7 @@ public class TemplatePolicy extends CloneableEntity return false; } TemplatePolicy other = (TemplatePolicy) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicySet.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicySet.java index 2baf67a8d9b336af5e727e72368e9b477c96856a..55117db5d31eb36de06ff9e807c4bbcbb4aca25b 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicySet.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/TemplatePolicySet.java @@ -112,10 +112,7 @@ public class TemplatePolicySet extends CloneableEntity return false; } TemplatePolicySet other = (TemplatePolicySet) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRole.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRole.java index 9377187847fb754662ac7b7fa82507cc73c15792..58ea02bdb855720a46b8260ce5296b56cae5f4ff 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRole.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRole.java @@ -100,10 +100,7 @@ public class UserExperimentRole extends CloneableEntity return false; } UserExperimentRole other = (UserExperimentRole) object; - if ((this.userExperimentRolePK == null && other.userExperimentRolePK != null) || (this.userExperimentRolePK != null && !this.userExperimentRolePK.equals(other.userExperimentRolePK))) { - return false; - } - return true; + return (this.userExperimentRolePK != null || other.userExperimentRolePK == null) && (this.userExperimentRolePK == null || this.userExperimentRolePK.equals(other.userExperimentRolePK)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java index 14efa81f800893b302081133f0e19f4011d88efa..327c1ac1a9386fa1e25fda2de73872a78d2128b5 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java @@ -87,10 +87,7 @@ public class UserExperimentRolePK implements Serializable if (this.experimentId != other.experimentId) { return false; } - if (this.roleTypeId != other.roleTypeId) { - return false; - } - return true; + return this.roleTypeId == other.roleTypeId; } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java index d1fc360a37bc8557cacf9b58207426e2b0a48218..62e35b2a5b36df0d0fa6ddcaeea3a06796dacc3e 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java @@ -245,10 +245,7 @@ public class UserInfo extends CloneableEntity return false; } UserInfo other = (UserInfo) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java index 7d539cba4e429b86114f92c25c64bfd30da920f7..e618cc19670c5c180b641f0593d4953fd7ccaeae 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java @@ -101,10 +101,7 @@ public class UserSetting extends CloneableEntity return false; } UserSetting other = (UserSetting) object; - if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { - return false; - } - return true; + return (this.id != null || other.id == null) && (this.id == null || this.id.equals(other.id)); } @Override diff --git a/src/java/DmWebPortal/web/WEB-INF/web.xml b/src/java/DmWebPortal/web/WEB-INF/web.xml index 5d426f413e5c4ffb74dc6d098bf6187401a24fbd..086dcfb71f49cc1792f5ee04fdb5e98b21efb271 100644 --- a/src/java/DmWebPortal/web/WEB-INF/web.xml +++ b/src/java/DmWebPortal/web/WEB-INF/web.xml @@ -21,4 +21,8 @@ <welcome-file-list> <welcome-file>index.xhtml</welcome-file> </welcome-file-list> + <error-page> + <exception-type>javax.faces.application.ViewExpiredException</exception-type> + <location>/login.xhtml</location> + </error-page> </web-app> diff --git a/src/java/DmWebPortal/web/resources/js/common/forwardFromHome.js b/src/java/DmWebPortal/web/resources/js/common/forwardFromHome.js new file mode 100644 index 0000000000000000000000000000000000000000..3e5512f70a1e9562b7820651ffe45ff5a73a9679 --- /dev/null +++ b/src/java/DmWebPortal/web/resources/js/common/forwardFromHome.js @@ -0,0 +1 @@ + window.location = "login.xhtml"; diff --git a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml index 19764018e9c5da6ef6bb6c1c7d06cdcfa32d27cc..1971d8b462f0f682b9668207dad6b25de0835470 100644 --- a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml +++ b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml @@ -58,9 +58,10 @@ <p:menuitem value="Experiments" url="/views/experiment/list.xhtml"/> <p:menuitem value="Users" url="/views/userInfo/list.xhtml"/> <p:menuitem value="Experiment Types" url="/views/experimentType/list.xhtml"/> - <p:menuitem value="Policies" url="/views/policyType/list.xhtml"/> <p:menuitem value="Role Types" url="/views/roleType/list.xhtml"/> - <p:menuitem value="Login" onclick="PF('loginDialog').show();" rendered="#{!loginController.loggedIn}" icon="ui-icon-person"/> - <p:menuitem value="Logout" action="#{loginController.logout()}" rendered="#{loginController.loggedIn}" icon="ui-icon-close"/> </p:menubar> + <p:menuitem value="Policies" url="/views/policyType/list.xhtml"/> + <p:menuitem value="Role Types" url="/views/roleType/list.xhtml"/> + <p:menuitem value="Logout" action="#{loginController.logout()}" icon="ui-icon-close"/> + </p:menubar> </h:form> </ui:insert> </div> diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml index 1669275ea3780e2337040b287060541cd858d817..78360f869e67622c904e3a8b7400b2a433663fdb 100644 --- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml @@ -7,17 +7,18 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> - <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin and experimentController.isRestricted()}"/> - <ui:composition template="../../templates/dmViewTemplate.xhtml"> - <ui:define name="middleCenter"> + + <ui:composition template="../../templates/dmViewTemplate.xhtml" > + <ui:define name="middleCenter" > <h:form id="editExperimentForm"> <div class="pageTitle"> <h1>Edit Experiment #{experimentController.current.name}</h1> </div> - <p:accordionPanel multiple="true" dynamic="true" cache="false" activeIndex="0,1" > + <p:accordionPanel multiple="true" dynamic="true" cache="false" activeIndex="0,1,2" > <p:tab title="Experiment Properties" id="detailsTab" > <div class="middleCenterLeftContent"> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml index 52f7128d63ce8387554e32b6e823cbb85fb559b3..8d0f1c736a16bcdf92f8622940a7aea405989429 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml @@ -58,11 +58,11 @@ <p:commandLink action="#{experimentController.prepareView(experimentObject)}" styleClass="ui-icon ui-icon-info" title="View"> </p:commandLink> - <p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.admin or experimentController.canEditExperiment(experimentObject.id)}" styleClass="ui-icon ui-icon-pencil" title="Edit"> + <p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.admin or experimentController.canEditExperiment(experimentObject)}" styleClass="ui-icon ui-icon-pencil" title="Edit"> <f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/> </p:commandLink> - <p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentObject.id)}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> + <p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentObject)}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml index f64d0209441af326aaf06e8baa9848d0e30a819e..1950af37da21a248ef86d1ad9e5fb6785f9eb0a8 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml @@ -10,18 +10,6 @@ <p/> <h:panelGrid columns="2" cellpadding="5"> - <p:outputLabel for="deletionPolicy" value="Data Deletion Policy: " /> - <p:selectOneMenu id="deletionPolicy" value="#{experimentController.current.getPolicyForType(1).name}" style="width:150px"> - <f:selectItem itemLabel="#{experimentController.current.getPolicyForType(1).name}" itemValue="" noSelectionOption="false" /> - <f:selectItems value="#{experimentController.getPoliciesNamesForType(1)}" /> - </p:selectOneMenu> - - <p:outputLabel for="transferPolicy" value="Data Transfer Policy: " /> - <p:selectOneMenu id="transferPolicy" value="#{experimentController.current.getPolicyForType(2).name}" style="width:150px"> - <f:selectItem itemLabel="#{experimentController.current.getPolicyForType(1).name}" itemValue="" noSelectionOption="false" /> - <f:selectItems value="#{experimentController.getPoliciesNamesForType(2)}" /> - </p:selectOneMenu> - </h:panelGrid> <!-- <p:dataTable id="experimentPoliciesEditDataTable" diff --git a/src/java/DmWebPortal/web/views/home.xhtml b/src/java/DmWebPortal/web/views/home.xhtml index 5bfdf960a8a916b56721db1922fe9959b2bb22ad..e62fae7b3b53f001648f45210b493da762892ec1 100644 --- a/src/java/DmWebPortal/web/views/home.xhtml +++ b/src/java/DmWebPortal/web/views/home.xhtml @@ -3,11 +3,14 @@ <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" - xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" - xmlns:f="http://xmlns.jcp.org/jsf/core"> + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + + + <h:outputScript library="js/common" name="forwardFromHome.js" rendered="#{!loginController.loggedIn}" /> - <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml b/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml index 28d5d490e7bb4906bd13c7cd73931a50c969d37b..bdf0495255ef2c32a444362f47181f8a92e58e70 100644 --- a/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml @@ -35,15 +35,15 @@ </p:column> - <p:column sortBy="#{!experimentUserObject.isManager}" headerText="Manager"> + <p:column sortBy="#{!userExperimentObject.isManager}" headerText="Manager"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isManager}" /> </p:column> - <p:column sortBy="#{!experimentUserObject.isPI}" headerText="Principal Investigator"> + <p:column sortBy="#{!userExperimentObject.isPI}" headerText="Principal Investigator"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isPI}" /> </p:column> - <p:column sortBy="#{!experimentUserObject.isUser}" headerText="User"> + <p:column sortBy="#{!userExperimentObject.isUser}" headerText="User"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isUser}" /> </p:column>